如何从字符串中删除前10个字符?

如何忽略字符串的前10个字符?

输入:

str = "hello world!";

产出:

d!
287484 次浏览

Substring有一个名为 startIndex 的参数。请根据您希望从哪个索引开始设置它。

使用子串方法。

string s = "hello world";
s=s.Substring(10, s.Length-10);
str = "hello world!";
str.Substring(10, str.Length-10)

您将需要执行长度检查,否则将抛出一个错误

str = str.Remove(0,10); 删除前10个字符

或者

str = str.Substring(10); 创建从第11个字符开始到字符串末尾的子字符串。

为了你的目的,它们应该是一样的。

您可以使用接受单个参数的方法 Substring,该参数是要从中开始的索引。

在我的代码下面我处理的情况下,如果长度小于你想要的开始索引,当长度为零。

string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));

子字符串可能是您想要的,正如其他人指出的那样。

string result = string.Join(string.Empty, str.Skip(10));

你甚至不需要检查这个长度!:)如果小于10个字符,则得到一个空字符串。

致:

var str = "hello world!";

如果结果字符串的长度小于或等于10,则不包含前10个字符和一个空字符串,可以使用:

var result = str.Length <= 10 ? "" : str.Substring(10);

或者

var result = str.Length <= 10 ? "" : str.Remove(0, 10);

第一个变量是首选的,因为它只需要一个方法参数。

不需要在 Substring方法中指定长度。 因此:

string s = hello world;
string p = s.Substring(3);

p为:

“爱世界”。

The only exception you need to cater for is ArgumentOutOfRangeException if startIndex is less than zero or greater than the length of this instance.

您可以使用下面的代码行删除 Char,

:- 首先检查 That String 有足够的 char 可以删除 ,like

   string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}

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!

如果您可以通过检查防御性编码的长度来应用防御性编码。

从 C # 8开始,您可以简单地使用 Range Operator。这是处理这类案件更有效、更好的方法。

string AnString = "Hello World!";
AnString = AnString[10..];

调用 SubString()将分配一个新字符串。为了获得最佳性能,应该避免这种额外的分配。从 C# 7.2开始,您可以利用 Span模式的优势。

当以 .NET Framework为目标时,包括 系统,内存 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();
}