Equivalente in C # a charAt () di Java?


118

So che possiamo usare il charAt()metodo in Java per ottenere un singolo carattere in una stringa specificando la sua posizione. Esiste un metodo equivalente in C #?


Stai cercando una soluzione che funzioni solo su stringhe garantite per non contenere caratteri Unicode non a 16 bit? O stai cercando una soluzione che funzioni su una stringa arbitraria?
Hippietrail

Risposte:


201

Puoi indicizzare in una stringa in C # come un array e ottieni il carattere in quell'indice.

Esempio:

In Java, diresti

str.charAt(8);

In C #, diresti

str[8];

2
Penso che dovrebbe essere sottolineato che str.Substring (8,1) funziona come una soluzione, ma è molto più lento. L'ho appena scoperto nel modo più duro.
qzcx

Questo mi ha salvato la vita: D Grazie mille!
Spidi's Web


0

puoi usare LINQ

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

-1

per favore prova a farlo come un personaggio

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

-2

Console.WriteLine consente all'utente di specificare una posizione in una stringa.

Vedi esempio:

string str = "Tigro"; Console.WriteLine (str [0]); // restituisce "T"; Console.WriteLine (str [2]); // restituisce "g";

Ecco qua!


-3

Basta usare String.ElementAt(). È abbastanza simile a quello di Java String.charAt(). Buon divertimento con la programmazione!


Perché dovresti usare un metodo di estensione IEnumerable, quando puoi semplicemente fare ciò che gli altri menzionavano molti anni fa? (Indicizzazione delle stringhe incorporata).
Dave Doknjas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.