Java 让';假设我有一个字符数组(一个字符串),我想计算每个字符出现的时间。然而,不应该有如果
所以我解决这个问题的方法是创建第二个int数组,大小为26,称为count,表示每个字母出现的时间,因此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
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语言不是我可以用这两种语言编程的问题。但这是我们试图提供解决方案的问题。我们的时间比你的宝贵得多。