我在採訪中得到了一個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