2012-10-02 52 views
-1

如何使用StringTokenizer来计算String中的数字出现的次数,如果数字用"_"分隔?必须通过命令行输入String使用StringTokenizer计数数字的频率

例如,如果用户输入:

1_3_34_12_1_2_34 

输出将是

1_2, 3_1, 34_2, 2_1, 12_1 
+0

您可以使用地图来存储你的电话号码与他们对应的计.. –

+3

我会用'split'而非StringTokenizer的。 –

+0

输出必须在那格式? – Gamb

回答

0

这里是你可以做什么

String input = "1_3_34_12_1_2_34"; 
String[] numbers = input.split("_"); 
Arrays.sort(numbers); 
int count = -1; 
String last = numbers[0]; 
for (String n : numbers) { 
    count++; 
    if (n.equals(last)) continue; 
    System.out.print(last + '_' + count + ','); 
    last = n; 
    count = 0; 
} 
count++; 
System.out.println(last + '_' + count); 

打印

1_2,12_1,2_1,3_1,34_2 
为例

提示:为了表明你应该使用一个LinkedHashMap<String, Integer>

+0

当我输入1_1_1_1_1时,它说1_4。即使在你的代码34出现两次,但输出是34_1。怎么了? – cornerstone

+0

它忘记了算上最后一个。 –