如何获得字符串的前五个字符
本文关键字:五个 字符 何获得 字符串 | 更新日期: 2023-09-27 18:08:39
我已经阅读了这个问题,以获得字符串的第一个字符。是否有一种方法可以从c#字符串中获得前n个字符?
可以使用Enumerable。如:
char[] array = yourStringVariable.Take(5).ToArray();
或者您可以使用String.Substring。
string str = yourStringVariable.Substring(0,5);
请记住,String.Substring
可能在字符串长度小于所需字符的情况下抛出异常。
如果你想以字符串的形式返回结果,那么你可以使用:
使用String构造函数和LINQ的
Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
这个方法的加号是不事先检查长度。
- 另一种方法是使用
String.Substring
与错误检查
:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
请尝试:
yourString.Substring(0, 5);
检查c#子字符串,字符串。Substring Method
您可以使用Substring(int startIndex, int length)
string result = str.Substring(0,5);
子字符串从指定的字符位置开始,有指定的长度。此方法不修改当前的值实例。相反,它返回一个具有长度字符的新字符串从当前字符串中的startIndex位置开始, MSDN
如果源字符串少于5个字符怎么办?使用上述方法会得到异常。我们可以设置条件来检查字符串中的字符数是否大于5,然后通过Substring获取前5个字符。注意,我已将源字符串分配给firstFiveChar变量。如果字符数小于5,则第一个fivechar不改变,因此不需要else部分。
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
没有人提到如何在使用Substring()
时进行适当的检查,所以我想对此做出贡献。
如果你不想使用Linq
而使用Substring()
,你必须确保你的字符串大于Substring()
函数的第二个参数(长度)。
假设您需要前5个字符。你应该进行适当的检查,像这样:
string title = "love"; // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
如果没有这种检查,Substring()
函数会抛出异常,因为它会遍历不存在的字母。
我想你明白了…
.Substring(,)
的问题是,您需要确保给定的字符串至少具有要求的字符数的长度,否则将抛出ArgumentOutOfRangeException
。
解决方案1(使用Substring):
var firstFive = stringValue != null && stringValue.Length > 5 ?
stringValue.Substring(0, 5) :
stringValue;
使用.Substring(
的缺点是需要检查给定字符串的长度。
方案2(使用'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
使用'Take'可以避免检查给定字符串的长度。
提醒一下,在c# 8.0中有一种新的方法可以做到这一点:范围操作符
微软文档或者我喜欢叫它们"熊猫片"。
老方法:
string newString = oldstring.Substring(0, 5);
新方法:
string newString = oldstring[..5];
乍一看,对于较短的代码来说,这似乎是一个相当糟糕的权衡,但是新特性给了你
- 用于切片数组(因此也是字符串)的标准语法
这样很酷的东西:
var slice1 = list[2..^3];//列表范围。创建(2,Index.CreateFromEnd (3)))
var slice2 = list[..^3];//列表(Range.ToEnd (Index.CreateFromEnd (3)))
var slice3 = list[2..];//列表(Range.FromStart (2)]
var slice4 = list[..];//列表范围。所有]
使用PadRight函数来防止字符串太短,在一个语句中获取您需要的内容,然后从末尾修剪空格。
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
我不知道为什么有人提到这个。但这是实现这一目标的最短和最简单的方法。
string str = yourString.Remove(n);
n
-您需要的字符数
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
添加五个空白字符,然后截断前五个字符并修剪结果。添加的空格数应该与要切割的空格数相匹配。请确保在.Substring(0,X)
之前包含圆括号,否则您将不添加任何内容。
string str = (yourStringVariable + " ").Substring(0,5).Trim();
使用这种技术,您将不必担心在其他答案中提到的ArgumentOutOfRangeException
。
string str = "GoodMorning"
string strModified = str.Substring(0,5);
2020年你应该这样做:
var s = "ABCDEFGH";
var first5 = s.AsSpan(0, 5);
Spanstring
的后续方法都需要转换:
Console.WriteLine(first5.ToString());
虽然,这些天许多.NET
api允许跨度。如果可能的话,坚持下去!
注:如果目标为.NET Framework
,则添加对System的引用。内存封装,但不要期望同样出色的性能。
在c# 8.0中,您可以获得字符串的前五个字符,如
string str = data[0..5];
这里有一些关于索引和范围的更多信息
在c#
中从字符串中获取前n个字符String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
下面是一个扩展方法,用于检查字符串是否大于所需的长度,并将字符串缩短为定义的最大字符数,并附加'…'。
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
请在str小于5时尝试此代码。
string strModified = str.Substring(0,str.Length>5?5:str.Length);
在c# 8中可以使用范围运算符。为了避免原始字符串短于期望长度的异常,您可以使用Math.Min
:
string newString = oldstring[..Math.Min(oldstring.Length, 5)];
当然,如果你知道原来的字符串更长,你可以优化:
string newString = oldstring[..5];
我使用:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
或其他选项,如果你想检查空白(而不仅仅是Null):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
或者您可以使用String.ToCharArray()。
它接受int startindex
和int length
作为参数,并返回一个char[]
new string(stringValue.ToCharArray(0,5))
你仍然需要确保字符串有适当的长度,否则它会抛出一个ArgumentOutOfRangeException
这就是我所使用的,它没有问题字符串少于所需的字符
private string TakeFirstCharacters(string input, int characterAmount)
{
return input?.Substring(0, Math.Min(input.Length, characterAmount));
}
如果我们只需要任何字段的前5个字符,那么这可以通过Left Attribute
实现Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
试试下面的代码
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
我试过上面的答案,我认为最好的是这个
@item.First_Name.Substring(0,1)
在这里,我可以得到字符串的第一个字母