我有一個HashMap設置,並且我從用戶使用Scanner獲取字符串輸入。我想獲取用戶輸入字符串,然後通過添加它們在Hashmap中表示的值來計算整個消息的寬度。通過hashmap的鍵值逐字符串獲得總和
那麼比如說,讓我們說你進入「測試」。噸的在HashMap中的值是2,e的值是3,s的值是3,和t的值也爲2全部加起來的值,以便你最終10.
System.out.print("How much width do you want i to have? ");
int i = input.nextInt();
System.out.println("\nEnter the string input:");
Scanner scan = new Scanner(System.in);
String user_input = scan.nextLine();
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a", i*2);
map.put("b", i*2);
map.put("c", i*2);
map.put("d", i*2);
map.put("e", i*3);
map.put("f", i*2);
map.put("g", i*2);
map.put("h", i*2);
map.put("i", i*1);
...down to z
所以你知道,所有的鍵的值都是相對於我的值,所以這就是爲什麼我的值設置爲i * n。
我想:
int count = map.containsKey("a") ? map.get("a") : 0;
map.put("a", count + 1);
但簡單地告訴我什麼鍵的值「a」設置爲。我需要通過hashmap運行每個字符串,獲取值,並將每個值一起添加。然後得到總和。我知道這將需要一個for循環遍歷字符串中的每個字母。顯然,我錯過了代碼中的一些重要部分。
此外,是否有可能直接設置爲散列圖a有多少存在,有多少b存在等等?我爲此設置了一個靈活的數組列表,可以讓我添加/刪除字母,但如果我可以使用hashmap來完成,它會使事情變得更簡單。
謝謝!
您的問題開始討論總和,並結束詢問有關計數(以不太清楚的方式)。您可能需要映射 - 一個用於計數並用於計算總和。 – 2013-04-27 21:12:57
好吧,如果我可以得到字符串輸入中的字符數,我可以通過簡單地添加字符串中每個字符的鍵值來計算總和。這幾乎是我目前試圖找出編碼部分 – harshm0de 2013-04-27 21:30:30
現在還不清楚你的問題在這裏。請修改您的帖子並詢問一個明確的問題,否則它將被關閉。 – RBarryYoung 2013-04-27 22:34:50