如何忽略字符串的前10个字符?
输入:
str = "hello world!";
输出:
d!
答案 0 :(得分:188)
str = str.Remove(0,10);
删除前10个字符
或
str = str.Substring(10);
创建一个从第11个字符开始到字符串结尾的子字符串。
出于您的目的,他们应该完全相同。
答案 1 :(得分:82)
str = "hello world!";
str.Substring(10, str.Length-10)
你需要执行长度检查,否则会引发错误
答案 2 :(得分:14)
其他人指出,子串可能就是你想要的。但只是为混合添加另一个选项......
string result = string.Join(string.Empty, str.Skip(10));
你甚至不需要检查它的长度! :)如果它少于10个字符,你会得到一个空字符串。
答案 3 :(得分:6)
Substring
有两种重载方法:
public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.
public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
因此,对于这种情况,您可以使用下面的第一种方法:
var str = "hello world!";
str = str.Substring(10);
这里的输出是:
d!
如果您可以通过检查其长度来应用防御性编码。
答案 4 :(得分:5)
Substring
有一个名为startIndex的参数。根据您要开始的索引进行设置。
答案 5 :(得分:2)
您可以使用以下行删除字符,
: - 首先检查字符串是否有足够的字符串删除,例如
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
答案 6 :(得分:1)
使用子字符串方法。
string s = "hello world";
s=s.Substring(10, s.Length-10);
答案 7 :(得分:1)
您可以使用采用单个参数的方法Substring方法,该参数是从中开始的索引。
在下面的代码中我处理的情况是长度小于你想要的起始指数,长度是零。
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
答案 8 :(得分:1)
有关:
var str = "hello world!";
要获得没有前10个字符的结果字符串,并且如果字符串的长度小于或等于10,则可以使用空字符串:
var result = str.Length <= 10 ? "" : str.Substring(10);
或
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
首选变体是首选,因为它只需要一个方法参数。
答案 9 :(得分:0)
无需在Substring
方法中指定长度。
因此:
string s = hello world;
string p = s.Substring(3);
p
将是:
“lo world”。
您需要满足的唯一例外是ArgumentOutOfRangeException
if
startIndex
小于零或大于此实例的长度。
答案 10 :(得分:0)
从C#8开始,您只需使用范围运算符即可。这是处理此类案件的更有效,更好的方法。
string AnString = "Hello World!";
AnString = AnString[10..];
答案 11 :(得分:0)
调用SubString()
分配一个新字符串。为了获得最佳性能,应避免额外分配。从C# 7.2
开始,您可以利用Span模式。
定位.NET Framework
时,请包含System.Memory NuGet
软件包。对于.NET Core
项目,这是开箱即用的。
static void Main(string[] args)
{
var str = "hello world!";
var span = str.AsSpan(10); // No allocation!
// Outputs: d!
foreach (var c in span)
{
Console.Write(c);
}
Console.WriteLine();
}