C # odpowiednik funkcji charAt () w języku Java?


118

Wiem, że możemy użyć charAt()metody w Javie, aby uzyskać pojedynczy znak w ciągu, określając jego pozycję. Czy istnieje równoważna metoda w C #?


Szukasz rozwiązania, które działa tylko na ciągach znaków, które nie zawierają żadnych innych niż 16-bitowe znaki Unicode? A może szukasz rozwiązania, które działa na dowolnym sznurku?
hippietrail

Odpowiedzi:


201

Możesz indeksować do ciągu w C # jak tablicę, a otrzymasz znak w tym indeksie.

Przykład:

Powiedziałbyś, że w Javie

str.charAt(8);

Powiedziałbyś w C #

str[8];

2
Myślę, że należy zauważyć, że str.Substring (8,1) działa jako rozwiązanie, ale jest znacznie wolniejsze. Właśnie się o tym przekonałem.
qzcx

To uratowało mi życie: D Wielkie dzięki!
Spidi's Web


0

możesz użyć LINQ

string abc = "abc";
char getresult = abc.Where((item, index) => index == 2).Single();

-1

spróbuj zrobić to jako postać

string str = "Tigger";
//then str[0] will return 'T' not "T"

-2

Console.WriteLine umożliwia użytkownikowi określenie pozycji w ciągu.

Zobacz przykład:

string str = "Tygrysek"; Console.WriteLine (str [0]); // zwraca „T”; Console.WriteLine (str [2]); // zwraca "g";

Proszę bardzo!


-3

Po prostu użyj String.ElementAt(). Jest dość podobny do Java String.charAt(). Miłego programowania!


Dlaczego miałbyś używać metody rozszerzenia IEnumerable, skoro możesz po prostu zrobić to, o czym inni wspominali wiele lat temu? (Wbudowane indeksowanie ciągów).
Dave Doknjas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.