我需要编写一个函数来计算字符串中每个字母的频率。使用StringTokenizer计数字符
这是一个例子:
我收到了文件:notes.txt包含消息:“您好,这是来自内布拉斯加州的杰克”
当我读文件,这是结果:
一:3 H:1 E:2 1:2 等
有人告诉我,我可以使用Stringtokeizer,这是真的吗?
我需要编写一个函数来计算字符串中每个字母的频率。使用StringTokenizer计数字符
这是一个例子:
我收到了文件:notes.txt包含消息:“您好,这是来自内布拉斯加州的杰克”
当我读文件,这是结果:
一:3 H:1 E:2 1:2 等
有人告诉我,我可以使用Stringtokeizer,这是真的吗?
public static void main(String... args) {
String str = "Hello this is Jack from Nebraska";
Map<Character, Integer> frequencies = new HashMap<Character, Integer>();
for (char c : str.toCharArray()) {
if (!frequencies.containsKey(c))
frequencies.put(c, 1);
else
frequencies.put(c, frequencies.get(c) + 1);
}
System.out.println(frequencies);
}
输出:
{f=1, =5, e=2, b=1, c=1, a=3, o=2, N=1, l=2, m=1, H=1, k=2, h=1, J=1, i=2, t=1, s=3, r=2}
你可以使用一个多集/包的数据结构的方法。使用番石榴它看起来像:在
public static void main(String... a) {
final String str = "Hello this is Jack from Nebraska";
final Builder<Character> b = ImmutableMultiset.builder();
for (char c : str.toCharArray())
b.add(c);
System.out.println(b.build());
}
结果:
[H, e x 2, l x 2, o x 2, x 5, t, h, i x 2, s x 3, J, a x 3, c, k x 2, f, r x 2, m, N, b]
这是真的。还有很多其他的方法可以做到这一点。你有什么尝试? – Jeffrey
你能否提供一些你自己的代码?我们不会为你做所有事情。 –
[写入字符串中的信息]的可能的重复(http://stackoverflow.com/questions/11303174/writing-information-in-a-string) – Joey