Làm thế nào để bỏ qua 10 ký tự đầu tiên của một chuỗi?
Đầu vào:
str = "hello world!";
Đầu ra:
d!
Làm thế nào để bỏ qua 10 ký tự đầu tiên của một chuỗi?
Đầu vào:
str = "hello world!";
Đầu ra:
d!
Câu trả lời:
str = "hello world!";
str.Substring(10, str.Length-10)
bạn sẽ cần thực hiện kiểm tra độ dài nếu không điều này sẽ gây ra lỗi
str = str.Remove(0,10);
Xóa 10 ký tự đầu tiên
hoặc là
str = str.Substring(10);
Tạo một chuỗi con bắt đầu từ ký tự thứ 11 đến cuối chuỗi.
Đối với mục đích của bạn, chúng sẽ hoạt động giống nhau.
Chuỗi con có thể là những gì bạn muốn, như những người khác đã chỉ ra. Nhưng chỉ để thêm một tùy chọn khác vào hỗn hợp ...
string result = string.Join(string.Empty, str.Skip(10));
Bạn thậm chí không cần phải kiểm tra độ dài trên này! :) Nếu nó ít hơn 10 ký tự, bạn sẽ nhận được một chuỗi rỗng.
Substring
có hai phương pháp Nạp chồng:
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.
Vì vậy, đối với trường hợp này, bạn có thể sử dụng phương pháp đầu tiên như sau:
var str = "hello world!";
str = str.Substring(10);
Đây là kết quả đầu ra:
d!
Nếu bạn có thể áp dụng mã hóa phòng thủ bằng cách kiểm tra độ dài của nó.
Bạn có thể loại bỏ Char bằng cách sử dụng Dòng dưới đây,
: - Đầu tiên hãy kiểm tra xem Chuỗi có đủ ký tự để loại bỏ , như
string temp="Hello Stack overflow";
if(temp.Length>10)
{
string textIWant = temp.Remove(0, 10);
}
Sử dụng phương pháp chuỗi con.
string s = "hello world";
s=s.Substring(10, s.Length-10);
Bạn có thể sử dụng phương thức Substring method nhận một tham số duy nhất, là chỉ mục để bắt đầu.
Trong đoạn mã dưới đây, tôi giải quyết trường hợp độ dài nhỏ hơn chỉ mục bắt đầu mong muốn của bạn và khi độ dài bằng 0.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
Đối với:
var str = "hello world!";
Để nhận được chuỗi kết quả không có 10 ký tự đầu tiên và một chuỗi trống nếu chuỗi có độ dài nhỏ hơn hoặc bằng 10, bạn có thể sử dụng:
var result = str.Length <= 10 ? "" : str.Substring(10);
hoặc là
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
Biến thể đầu tiên được ưu tiên vì nó chỉ cần một tham số phương thức.
Bắt đầu từ C # 8, bạn chỉ có thể sử dụng Toán tử Phạm vi. Đó là cách hiệu quả hơn và tốt hơn để xử lý những trường hợp như vậy.
string AnString = "Hello World!";
AnString = AnString[10..];
C# 8
không được hỗ trợ khi nhắm mục tiêu .NET Framework
.
Gọi SubString()
phân bổ một chuỗi mới. Để có hiệu suất tối ưu, bạn nên tránh phân bổ thêm đó. Bắt đầu với C# 7.2
bạn có thể tận dụng mô hình Span .
Khi nhắm mục tiêu .NET Framework
, hãy bao gồm gói System.Memory NuGet
. Đối với .NET Core
các dự án, điều này hoạt động hiệu quả.
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();
}