Как игнорировать первые 10 символов строки?
Вход:
str = "hello world!";
Выход:
d!
Как игнорировать первые 10 символов строки?
Вход:
str = "hello world!";
Выход:
d!
Ответы:
str = "hello world!";
str.Substring(10, str.Length-10)
вам нужно будет выполнить проверку длины, иначе это вызовет ошибку
str = str.Remove(0,10);
Удаляет первые 10 символов
или
str = str.Substring(10);
Создает подстроку, начиная с 11-го символа до конца строки.
Для ваших целей они должны работать одинаково.
Подстрока, вероятно, то, что вы хотите, как указывали другие. Но просто чтобы добавить еще один вариант ...
string result = string.Join(string.Empty, str.Skip(10));
Вам даже не нужно проверять длину на этом! :) Если его меньше 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!
Если вы можете применить защитное кодирование, проверив его длину.
Вы можете удалить символ, используя строку ниже,
: - Сначала проверьте, что строка имеет достаточно символов для удаления , например
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
Используйте метод подстроки.
string s = "hello world";
s=s.Substring(10, s.Length-10);
Вы можете использовать метод Substring, который принимает единственный параметр, который является индексом для начала.
В моем коде ниже я имею дело со случаем, когда длина меньше желаемого начального индекса и когда длина равна нулю.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
За:
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
будет:
"вот мир".
Единственное исключение, которое вам нужно учитывать, - это ArgumentOutOfRangeException
если
startIndex
меньше нуля или больше, чем длина этого экземпляра.
Начиная с C # 8, вы можете просто использовать Range Operator. Это более эффективный и лучший способ справиться с такими случаями.
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8
не поддерживается при таргетинге .NET Framework
.
Вызов 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();
}