А для лучшей читаемости можно использовать "". В наши дни он компилируется точно так же, как string.Empty.
PRMan
Это не так, "" создает новую строку, а string.Empty ссылается на нее. Это не имеет особого значения с точки зрения производительности (я имею в виду, что это одна пустая строка, так что да ...), но просто хотел указать на это :)
publicstringSubstring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.publicstringSubstring(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!
Если вы можете применить защитное кодирование, проверив его длину.
Нет необходимости указывать длину в Substringметоде. Следовательно:
string s = hello world;
string p = s.Substring(3);
p будет:
"вот мир".
Единственное исключение, которое вам нужно учитывать, - это ArgumentOutOfRangeExceptionесли
startIndexменьше нуля или больше, чем длина этого экземпляра.
C# 8не поддерживается при таргетинге .NET Framework.
l33t
0
Вызов SubString()выделяет новую строку. Для оптимальной производительности вам следует избегать этого дополнительного выделения. Начиная с, C# 7.2вы можете воспользоваться паттерном Span .
При ориентации .NET Framework, включают в себя System.MemoryNuGet пакет. Для .NET Coreпроектов это работает из коробки.
staticvoidMain(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();
}
Ответы:
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);
Вот результат:
Если вы можете применить защитное кодирование, проверив его длину.
источник
У
Substring
него есть параметр startIndex. Установите его в соответствии с индексом, с которого хотите начать.источник
Вы можете удалить символ, используя строку ниже,
: - Сначала проверьте, что строка имеет достаточно символов для удаления , например
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.MemoryNuGet
пакет. Для.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(); }
источник