Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让';假设我有一个字符数组(一个字符串),我想计算每个字符出现的时间。然而,不应该有如果_Java_C++_Arrays_Character Encoding - Fatal编程技术网

Java 让';假设我有一个字符数组(一个字符串),我想计算每个字符出现的时间。然而,不应该有如果

Java 让';假设我有一个字符数组(一个字符串),我想计算每个字符出现的时间。然而,不应该有如果,java,c++,arrays,character-encoding,Java,C++,Arrays,Character Encoding,所以我解决这个问题的方法是创建第二个int数组,大小为26,称为count,表示每个字母出现的时间,因此 from = 0 Iteration < letters.length(); iteration ++; count[letter.charAt(i)-97]++; //Subtract 97 because it is the ASCII

所以我解决这个问题的方法是创建第二个int数组,大小为26,称为count,表示每个字母出现的时间,因此

from = 0 Iteration < letters.length(); iteration ++;
  count[letter.charAt(i)-97]++;   
                                    //Subtract 97 because it is the ASCII        
                                  //code for a so that a is 0 b is 1... 
from=0迭代
假设每个字符都是小写。 到目前为止,这是我的算法,它工作得非常好 但仅当字符数组没有任何 空间因为空格=32和32-97等于一个负数

现在我的计划是让count 1在那里的存储空间更大。那将是27。所以看起来像这样。a=97=0 b=98=1 c=99=2 ... 空间=27 从今天早上起我就一直在努力让它发挥作用。但我没能做到。
我真的很感激你的帮助。先谢谢你。

首先,你没有26个字符,你有27个;因为空格字符是允许的

char letter = 0;
    for ( int i =0; i < len; i++ )
    {
        letter = arraySource[i];
        switch( letter )
        {
            case ' ':
                break;
            default:
                count[ letter - 'a' ]++;
                break;
         }
    }
char字母=0;
对于(int i=0;i
使用97会给你带来麻烦

使用C++,你将使用String::LimthTh(),而这是,但是这是想法。


如果您可以使用String类,那么您将使用它的迭代器在字符串中循环

您可能希望使用。键可以是字符,值可以是该字符的计数。你可以对每个字符进行计数,而不是只计算每个字母。C++和java是完全不同的语言。在这里提问时选择一个。@Steve,这会使我的数组太大。@NeilButterworth语言不是我可以用这两种语言编程的问题。但这是我们试图提供解决方案的问题。我们的时间比你的宝贵得多。