2011-08-25 17 views
57

Jak zignorować pierwsze 10 znaków ciągu?Jak usunąć pierwsze 10 znaków z ciągu znaków?

Wejście:

str = "hello world!"; 

wyjściowa:

d! 
+7

string.Substring (9); gdzie 9 to indeks początkowy – Waqas

+0

Pamiętaj, aby najpierw sprawdzić, czy ciąg ma co najmniej 10 znaków, lub otrzymasz wyjątek. – Jonathan

+0

Dlaczego łańcuchy nie obsługują (startIndex, endindex)? za każdym razem musimy obliczyć Długość .. :-( –

Odpowiedz

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

trzeba będzie wykonać testy indziej długości byłoby wyrzucić błąd

4

Substring ma parametr o nazwie startIndex. Ustaw go zgodnie z indeksem, od którego chcesz zacząć.

1

Użyj metody podciągania.

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

zgłasza wyjątek, jeśli ciąg jest krótszy niż indeks początkowy –

143

str = str.Remove(0,10); Usuwa pierwsze 10 znaków

lub

str = str.Substring(10); tworzy początkowe podciąg na 11. znaku na końcu ciągu.

Dla swoich celów powinny działać identycznie.

1

Można użyć metody metody Substring, która pobiera pojedynczy parametr, od którego rozpoczyna się indeks.

W poniższym kodzie radzę sobie z przypadkiem, gdy długość jest mniejsza od pożądanego indeksu początkowego, a gdy długość wynosi zero.

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

obecnie zwraca ostatni znak z ciągu, jeśli ciąg ma mniej niż 10 znaków. –

12

Podszewka jest prawdopodobnie tym, czego chcesz, jak zauważyli inni. Ale po to, aby dodać inną opcję do miksu ...

string result = string.Join(string.Empty, str.Skip(10)); 

Nie musisz nawet sprawdzać długości! :) Jeśli jego mniej niż 10 znaków, otrzymasz pusty ciąg znaków.

1

Dla:

var str = "hello world!"; 

Aby uzyskać wynikowy ciąg bez pierwszych 10 znaków i pusty ciąg znaków, jeśli ciąg jest mniejsza lub równa długości do 10 można użyć:

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

lub

var result = str.Length <= 10 ? "" : str.Remove(0, 10); 

Preferowany jest pierwszy wariant, ponieważ wymaga tylko jednego parametru metody.

0

Nie ma potrzeby określania długości w metodzie Substring. Dlatego:

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

p będą:

"lo świat".

Jedyny wyjątek trzeba zaspokoić jest ArgumentOutOfRangeException jeśli startIndex jest mniejsza niż zero lub większa niż długość tej instancji.

1

można usunąć Chara za pomocą poniższego Line,

: - najpierw sprawdza, String ma wystarczająco char do usuwania, jak

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

SubString ma dwa przeciążenia metody:

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. 

W tym scenariuszu możesz użyć pierwszej metody podobnej do poniższej:

var str = "hello world!"; 
str = str.Substring(10); 

Tutaj wyjście jest:

d! 

Jeśli można zastosować kodowanie obronną sprawdzając jego długość.

Powiązane problemy