2010-12-01 16 views
4

Wie konvertiere ich ein Wort in ein Zeichen-Array?Konvertiere ein Wort in ein Zeichen-Array

Lets sagen, ich habe das Wort "Pneumonoultramicroscopicsilicovolcanconiosis" ja das ist ein Wort! Ich möchte dieses Wort nehmen und ihm einen numerischen Wert zuweisen.

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

int alpha = 1; 
int Bravo = 2; 

Basiscode

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); 
} 

Meine Frage ist, wie bekomme ich das das Wort „Pneumonoultramicroscopicsilicovolcanoconiosis“ in ein char String so dass ich Schleife die Buchstaben einzeln?

Dank im Voraus

+1

Warum wollen Sie müssen jedes Zeichen auf Ihre _own_ Nummerierung/Encoding-Format konvertieren? Ist ASCII oder UTF-8 nicht gut genug? – Oded

+0

Ich denke, dass Sie berechnen möchten, welches Zeichen in Zeichenfolge vorhanden ist und wie oft es wiederholt wird. Recht? – KhanZeeshan

Antwort

15

was

char[] myArray = myString.ToCharArray(); 

Aber Sie eigentlich gar nicht, dies tun müssen, wenn Sie die Zeichenfolge wiederholen möchten. Sie können

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

Das funktioniert einfach tun, da die string Klasse implementiert eine eigene indexer ist.

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

Voilá!

1

können Sie einfache for-Schleife verwenden.

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

Sie können die Linq Aggregate Funktion verwenden, um dies zu tun: (. Dieses spezielle Beispiel vorausgesetzt, dass Sie gleich Groß- und Kleinschreibung behandeln wollen)

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

Die Subtraktion 97 übersetzt den ASCII-Wert der Buchstaben so, dass "a" gleich Null ist. (Offensichtlich 96 subtrahieren, wenn Sie ‚a‘ 1 zu sein)

0

Sie können ToCharArray() -Methode der String-Klasse

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