将单词转换为字符数组

时间:2010-12-01 10:33:45

标签: c# string

如何将单词转换为字符数组?

让我们说我有“Pneumonoultramicroscopicsilicovolcanoconiosis”这个词是的,这是一个字!我想接受这个词并为其分配一个数值。

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

 int alpha = 1;
 int Bravo = 2;

基本代码

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

我的问题是我如何将“Pneumonoultramicroscopicsilicovolcanoconiosis”这个词变成一个字符串,以便我可以逐个循环这些字母?

提前致谢

5 个答案:

答案 0 :(得分:15)

怎么样

char[] myArray = myString.ToCharArray();

但是如果你想迭代字符串,你实际上并不需要这样做。你可以简单地做

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

这是有效的,因为string类实现了它自己的indexer

答案 1 :(得分:4)

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

瞧!

答案 2 :(得分:1)

你可以使用简单的for循环。

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

答案 3 :(得分:0)

您可以使用Linq Aggregate功能执行此操作:

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

(这个特殊的例子假设你想要相同地对待大写和小写。)

97的减法转换字母的ASCII值,使'a'为零。 (如果你想'a'为1,显然减去96。)

答案 4 :(得分:0)

你可以使用字符串类的ToCharArray()方法

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