Як ігнорувати перші 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!
Якщо ви можете застосувати захисне кодування, перевіривши його довжину.
Ви можете видалити Char, використовуючи нижній рядок,
: - Спочатку перевірте, чи має рядок достатньо символів для видалення , наприклад
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 method, який приймає один параметр, який є індексом, з якого починається.
У моєму коді нижче я розглядаю справу, якщо довжина менша за бажаний індекс початку і коли довжина дорівнює нулю.
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);
Перший варіант є кращим, оскільки йому потрібен лише один параметр методу.
Починаючи з 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();
}