C # équivalent à charAt () de Java?

118

Je sais que nous pouvons utiliser la charAt()méthode Java pour obtenir un caractère individuel dans une chaîne en spécifiant sa position. Existe-t-il une méthode équivalente en C #?

miteux
la source
Recherchez-vous une solution qui ne fonctionne que sur des chaînes garanties de ne pas contenir de caractères Unicode non 16 bits? Ou recherchez-vous une solution qui fonctionne sur une chaîne arbitraire?
hippietrail

Réponses:

201

Vous pouvez indexer dans une chaîne en C # comme un tableau, et vous obtenez le caractère à cet index.

Exemple:

En Java, vous diriez

str.charAt(8);

En C #, vous diriez

str[8];
Zach
la source
2
Je pense qu'il convient de souligner que str.Substring (8,1) fonctionne comme une solution, mais elle est beaucoup plus lente. Je viens de le découvrir à la dure.
qzcx
Cela m'a sauvé la vie: D Merci beaucoup!
Spidi's Web
0

vous pouvez utiliser LINQ

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

s'il vous plaît essayez d'en faire un personnage

string str = "Tigger";
//then str[0] will return 'T' not "T"
swapnil rawat
la source
-2

Console.WriteLine permet à l'utilisateur de spécifier une position dans une chaîne.

Voir exemple:

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

Voilà!

AndrewJames57
la source
-3

Utilisez simplement String.ElementAt(). C'est assez similaire à celui de java String.charAt(). Amusez-vous à coder!

Nguyễn Trần Hiển
la source
Pourquoi utiliseriez-vous une méthode d'extension IEnumerable, alors que vous pouvez simplement faire ce que les autres ont mentionné il y a plusieurs années? (Indexation de chaîne intégrée).
Dave Doknjas