2010-12-01 11 views
4

Comment convertir un mot en tableau de caractères? Disons que j'ai le mot "pneumonoultramicroscopicsilicovolcanoconiose" oui c'est un mot! Je voudrais prendre ce mot et lui attribuer une valeur numérique.Convertir un mot en tableau de caractères

a = 1 
b = 2 
... z = 26 

int alpha = 1; 
int Bravo = 2; 

Code

if (testvalue == "a") 
{ 
    Debug.WriteLine("TRUE A was found in the string"); // true 
    FinalNumber = Alpha + FinalNumber; 
    Debug.WriteLine(FinalNumber); 
} 

if (testvalue == "b") 
{ 
    Debug.WriteLine("TRUE B was found in the string"); // true 
    FinalNumber = Bravo + FinalNumber; 
    Debug.WriteLine(FinalNumber); 
} 
base

Ma question est de savoir comment puis-je obtenir le mot « pneumonoultramicroscopicsilicovolcanoconiosis » dans une chaîne char afin que je puisse boucler les lettres une par une?

merci à l'avance

+1

Pourquoi avez-vous besoin de convertir chaque caractère à votre numérotation _own_/encodage? ASCII ou UTF-8 n'est-il pas assez bon? – Oded

+0

Je pense que vous voulez calculer quel caractère est présent dans la chaîne et combien de fois il est répété. droite? – KhanZeeshan

Répondre

15

Qu'en est-

char[] myArray = myString.ToCharArray(); 

Mais vous n'avez pas réellement besoin de faire cela si vous voulez itérer la chaîne. Vous pouvez simplement faire

for(int i = 0; i < myString.Length; i++){ 
    if(myString[i] ...){ 
    //do what you want here 
    } 
} 

Cela fonctionne depuis la classe string implémente son propre indexer.

4
string word = "Pneumonoultramicroscopicsilicovolcanoconiosis"; 
char[] characters = word.ToCharArray(); 

Voilá!

1

vous pouvez utiliser simple pour la boucle.

string word = "Pneumonoultramicroscopicsilicovolcanoconiosis"; 
int wordCount = word.Length; 
for(int wordIndex=0;wordIndex<wordCount; wordIndex++) 
{ 
    char c = word[wordIndex]; 
    // your code 
} 
0

Vous pouvez utiliser la fonction Linq Aggregate pour ce faire: (. Cet exemple particulier suppose que vous souhaitez traiter majuscules et minuscules identique)

"wordsto".ToLower().Aggregate(0, (running, c) => running + c - 97); 

La soustraction 97 traduit la valeur ASCII des lettres de sorte que 'a' soit zéro. (De toute évidence soustraire 96 si vous voulez « a » être 1.)

0

vous pouvez utiliser ToCharArray() de la classe de chaîne

string strWord = "Pneumonoultramicroscopicsilicovolcanoconiosis"; 
char[] characters = strWord.ToCharArray();