2010-08-27 24 views
87

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

+0

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

risposta

149

È possibile indicizzare in una stringa in C# come un array e si ottiene il carattere in tale indice.

Esempio:

In Java, si direbbe

str.charAt(8); 

In C#, si direbbe

str[8]; 
+1

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

+0

Questo mi ha salvato la vita: D Grazie mille! –

+0

'str [8];' restituisce il codice char come un 'int32' non un' char' –

-1

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

See campione:

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

Ecco qua!

+9

questo argomento, e la tua risposta, non ha nulla a che fare con WriteLine ... – Jonathan

-1

si prega di cercare di renderlo come un personaggio

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

è possibile utilizzare LINQ

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

sufficiente utilizzare String.ElementAt(). È abbastanza simile a java String.charAt(). Divertiti con la programmazione!

+0

Perché dovresti usare un metodo di estensione IEnumerable, quando puoi semplicemente fare quello che gli altri hanno menzionato molti anni fa? (Indicizzazione stringa incorporata). –