我在采访中得到了一个java问题。在字符串中打印不同的字符,并在每个字符下面打印星号(*),以显示该字符串中字符重复的次数。打印星号(*)在字符串中的字符在java
对于例如:我的字符串是“GOOGLE”,那么输出应该是
G O L E
* * * *
* *
我在java中试过,我能创造一个HashMap,将重复的字符和数字存储的字符串中。但是HashMap不是基于字符串的插入顺序。我也不知道我的下一步应该是什么。有人能帮我吗?在此先感谢
public void myFunction(String str) {
int length = str.length();
HashMap<Character, Integer> hm = new HashMap<>();
for(int i=0;i<length;i++){
char ch = str.charAt(i);
if(hm.containsKey(ch)){
hm.put(ch, hm.get(ch)+1);
}
else {
hm.put(ch, 1);
}
}
System.out.println(hm);
}
OUTPUT - Enter a String:
GOOGLE
{E=1, G=2, L=1, O=2}
你可以找到答案在这里:http://stackoverflow.com/questions/683518/java-class-that-implements-map-and-keeps-insertion-order 检查尤其是LinkedHashMap的 – VLef
有没有需要使用HashMap来做这样简单的事情。这是相关的,但是矫枉过正。具有3行代码的简单1D阵列可以实现。 – user3437460