2011-08-25 42 views
57

Làm cách nào để bỏ qua 10 ký tự đầu tiên của chuỗi?Làm cách nào để xóa 10 ký tự đầu tiên khỏi chuỗi?

Input:

str = "hello world!"; 

Output:

d! 
+7

string.Substring (9); trong đó 9 là chỉ số bắt đầu – Waqas

+0

Hãy nhớ kiểm tra đầu tiên rằng chuỗi có ít nhất 10 ký tự hoặc bạn sẽ nhận được một ngoại lệ. – Jonathan

+0

Tại sao chuỗi con không hỗ trợ (startIndex, endindex)? mỗi lần chúng ta phải tính toán Độ dài .. :-( –

Trả lời

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

bạn sẽ cần phải thực hiện kiểm tra chiều dài khác điều này sẽ ném ra một lỗi

4

Các Substring có một tham số gọi startIndex. Đặt nó theo chỉ mục bạn muốn bắt đầu.

1

Sử dụng phương pháp chuỗi con.

string s = "hello world"; 
s=s.Substring(10, s.Length-10); 
+2

ném ngoại lệ nếu chuỗi ngắn hơn chỉ mục bắt đầu –

143

str = str.Remove(0,10); Loại bỏ 10 ký tự đầu tiên

hoặc

str = str.Substring(10); Tạo một chuỗi con bắt đầu ở ký tự thứ 11 đến cuối chuỗi.

Vì mục đích của bạn, chúng sẽ hoạt động giống hệt nhau.

1

Bạn có thể sử dụng phương pháp Substring phương pháp lấy một tham số duy nhất, là chỉ mục để bắt đầu.

Trong mã của tôi bên dưới, tôi giải quyết trường hợp đó là độ dài nhỏ hơn chỉ số bắt đầu bạn muốn và khi độ dài bằng 0.

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

hiện tại nó trả về ký tự cuối cùng từ chuỗi nếu chuỗi dài hơn 10 ký tự. –

12

Chuỗi con có lẽ là những gì bạn muốn, như những gì người khác đã chỉ ra. Nhưng chỉ để thêm tùy chọn khác vào danh sách kết 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 này! :) Nếu ít hơn 10 ký tự, bạn sẽ nhận được một chuỗi rỗng.

1

Mục đích:

var str = "hello world!"; 

Để có được chuỗi kết quả nếu không có sự 10 ký tự đầu tiên và một chuỗi rỗng nếu chuỗi là ít hơn hoặc bằng chiều dài đến 10 bạn có thể sử dụng:

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

hoặc

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 pháp.

0

Không cần phải chỉ định độ dài theo phương thức Substring. Do đó:

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

p sẽ là:

"lo thế giới".

Trường hợp ngoại lệ duy nhất bạn cần để phục vụ cho là ArgumentOutOfRangeException nếu startIndex là nhỏ hơn không hoặc lớn hơn độ dài của trường hợp này.

1

Bạn có thể Hủy bỏ Char sử dụng dưới Line,

: - séc đầu tiên Đó String có đủ char để loại bỏ, như

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

SubString có hai phương pháp quá tải:

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 kịch bản 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, đầu ra là:

d! 

Nếu bạn có thể áp dụng mã hóa phòng thủ bằng cách kiểm tra chiều dài của nó.

Các vấn đề liên quan