这就是我现在所拥有的-我想将letterCount数组中的所有值除以字符串的长度,然后将这些值存储在一个名为calculatedFreq的新数组中。
有办法让我做这件事吗?
编辑:我知道,计算频率应该是一个双,但这似乎导致更多的问题。
如何在数组上执行算术运算?
你不能。
Array是一个对象,您不能在对象上应用算术运算,因为Java算术运算符执行加、减、乘、除和取模。
但是,你可以从数组中取出元素,并对其应用算术运算,IFF,它们支持算术运算(例如,它们是一些可以加,减等的东西)。
:
calculatedFreq[i] = letterCount[i]/s.length();
,这样你的代码看起来像:
public class Brutus {
public static void main(String[] args) {
int[] letterCount = new int[26];
String s = args[0].replace(" ", "").toLowerCase();
for (int i = 0; i < s.length(); i++)
letterCount[s.charAt(i) - 'a']++;
System.out.println(letterCount[0]);
int[] calculatedFreq = new int[26];
for (int i = 0; i < letterCount.length; i++)
calculatedFreq[i] = letterCount[i]/s.length(); //<--modification here
}
}
也不清楚为什么要将常量26定义为数组的长度。也许这样做会更好:
String s = args[0].replace(" ", "").toLowerCase();
int[] letterCount = new int[s.length()];
通过这种方式,你将得到与输入长度完全相同的数组(在替换等之后)。