嘿伙计们我正在尝试编写一个代码来计算文本文件中的字符。
ex:AAABBbbcC
3A 2B 2b 1c 2C
但我不知道如果他们没有分开,如何计算像(AAA)
这样的字符。
我试过这个,但它并不像递归一样工作
String s = "aasjkkk";
int count1 = 0;
int count2 = 0;
char karakter1 = 0;
char karakter2 = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == s.charAt(i+1)) {
karakter1 = s.charAt(i);
count1 += 1;
System.out.print(count1 + " " + karakter1 + " ");
}
else if(s.charAt(i) != s.charAt(i+1)) {
karakter1 = s.charAt(i);
karakter1 = 1;
karakter2 = s.charAt(i+1);
karakter2 = 1;
System.out.print(count1 + " " + karakter1 + " " + count2 + " " + karakter2 + " ");
}
}
答案 0 :(得分:1)
由于这看起来像是一个家庭作业,我可以建议你这样做:
玩得开心!!
答案 1 :(得分:0)
,必须显示您之前尝试过的内容。
我认为您可能已经考虑过将String转换为char
数组,迭代等等......
嗯,@ bubuzz建议很好,这里有一个实现:
公共类ClasesObjetos {public static void main(String[] args) {
String s = "This is a single String";
HashMap<Character, Integer> m = new HashMap();
for (Character c : s.toCharArray()) {
if (!c.equals(" ")) {
if (m.get(c) == null )
m.put(c, 1);
else {
int i = (int) m.get(c) + 1;
m.put(c, i);
}
}
}
for (Character c : m.keySet()) {
System.out.println(c + " ---> " + m.get(c));
}
}
}
尝试一下,你会发现它忽略了空格。它会计算任何符号,你应该加上if
个检查。