将一个单词转换为字符数组

4

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

假设我有一个单词“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”转换为char字符串,以便我可以逐个循环字母?
提前致谢。

1
为什么需要将每个字符转换为您自己的编号/编码? ASCII或UTF-8 不够好吗? - Oded
我认为您想要计算字符串中出现的字符及其重复次数,对吗? - KhanZeeshan
5个回答

15

怎么样?

char[] myArray = myString.ToCharArray();

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

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

这个能够工作是因为 string 类实现了自己的 索引器


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

Voilá!


1

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

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

0
你可以使用 Linq Aggregate 函数来实现这个功能:
"wordsto".ToLower().Aggregate(0, (running, c) => running + c - 97);

(这个例子假设您希望将大写字母和小写字母视为相同。)

减去97可以将字母的ASCII值转换为以'a'为零的值。(如果您想要'a'为1,则显然应该减去96。)


0
你可以使用字符串类的ToCharArray()方法。
string strWord = "Pneumonoultramicroscopicsilicovolcanoconiosis"; 
char[] characters = strWord.ToCharArray(); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接