C # эквивалентно charAt () в Java?

118

Я знаю, что мы можем использовать charAt()метод в Java для получения отдельного символа в строке, указав его позицию. Есть ли эквивалентный метод в C #?

крысиный
источник
Вы ищете решение, которое работает только со строками, которые гарантированно не содержат никаких не 16-битных символов Юникода? Или вы ищете решение, которое работает с произвольной строкой?
hippietrail

Ответы:

201

Вы можете индексировать строку в C # как массив, и вы получаете символ по этому индексу.

Пример:

В Java вы бы сказали

str.charAt(8);

В C # вы бы сказали

str[8];
Zach
источник
2
Я думаю, следует отметить, что str.Substring (8,1) работает как решение, но намного медленнее. Просто выяснил это на собственном горьком опыте.
qzcx
Это спасло мне жизнь: D Большое спасибо!
Spidi's Web,
0

вы можете использовать LINQ

string abc = "abc";
char getresult = abc.Where((item, index) => index == 2).Single();
Харшад Каремор
источник
-1

пожалуйста, попробуйте сделать это как персонаж

string str = "Tigger";
//then str[0] will return 'T' not "T"
swapnil rawat
источник
-2

Console.WriteLine позволяет пользователю указать позицию в строке.

См. Образец:

строка str = "Тигра"; Console.WriteLine (стр [0]); // возвращает "T"; Console.WriteLine (стр [2]); // возвращает "g";

Вот так!

AndrewJames57
источник
-3

Просто используйте String.ElementAt(). Это очень похоже на java String.charAt(). Удачи кодированию!

Нгуен Трун Хиен
источник
Зачем вам использовать метод расширения IEnumerable, если вы можете просто делать то, что другие упоминали много лет назад? (Встроенная индексация строк).
Дэйв Докняс