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!
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!
str = "hello world!";
str.Substring(10, str.Length-10)
trzeba będzie wykonać testy indziej długości byłoby wyrzucić błąd
Substring
ma parametr o nazwie startIndex. Ustaw go zgodnie z indeksem, od którego chcesz zacząć.
Użyj metody podciągania.
string s = "hello world";
s=s.Substring(10, s.Length-10);
zgłasza wyjątek, jeśli ciąg jest krótszy niż indeks początkowy –
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.
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)));
obecnie zwraca ostatni znak z ciągu, jeśli ciąg ma mniej niż 10 znaków. –
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.
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.
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.
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);
}
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ść.
string.Substring (9); gdzie 9 to indeks początkowy – Waqas
Pamiętaj, aby najpierw sprawdzić, czy ciąg ma co najmniej 10 znaków, lub otrzymasz wyjątek. – Jonathan
Dlaczego łańcuchy nie obsługują (startIndex, endindex)? za każdym razem musimy obliczyć Długość .. :-( –