【问题标题】:Convert a word into character array将单词转换为字符数组
【发布时间】:2010-12-01 18:46:28
【问题描述】:

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

假设我有“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”这个词变成一个字符字符串,以便我可以一个一个地循环这些字母?

提前致谢

【问题讨论】:

  • 为什么您需要将每个字符转换为您的自己的编号/编码? ASCII 或 UTF-8 还不够好吗?
  • 我想你想计算字符串中存在哪个字符以及重复了多少次。对吗?

标签: c# string


【解决方案1】:

怎么样

char[] myArray = myString.ToCharArray();

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

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

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

【讨论】:

    【解决方案2】:
    string word = "Pneumonoultramicroscopicsilicovolcanoconiosis";
    char[] characters = word.ToCharArray();
    

    瞧!

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        您可以使用 Linq Aggregate 函数来执行此操作:

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

        (此特定示例假设您希望以相同的方式处理大写和小写。)

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 2013-11-27
            • 2016-02-04
            • 1970-01-01
            • 2016-05-22
            • 1970-01-01
            • 2020-03-26
            • 1970-01-01
            相关资源
            最近更新 更多