2015-02-07 48 views
1

我有一個看起來像這樣的輸入ABABABAABA,我想將輸入拆分爲單個字符,然後計算出現字母「A」和「B」的次數。這是我到目前爲止的內容拆分沒有空格的輸入

import java.util.Scanner; 

    Scanner str = new Scanner(System.in); 
    String userInput = str.nextLine(); 

    userInput.split(""); 

我應該在計算出「A」和「B」字母出現的次數後該做什麼?

回答

0

你實際上並不需要分割它,只需迭代它就足夠了。然後您可以使用地圖來計算髮生的事件,如下所示:

Scanner str = new Scanner(System.in); 
String userInput = str.nextLine(); 
Map<Character, Integer> occ = new HashMap<>(); 
for(char ch : userInput.toCharArray()) { 
    if(!occ.containsKey(ch)) { 
    occ.put(ch, 0); 
    } 
    occ.put(ch, occ.get(ch) + 1); 
} 
+0

謝謝!我想我必須再次看看地圖課。 – 2015-02-07 03:08:58

0

您將遍歷您的字符串並使用`String.charAt(index)'讀取字符。根本不需要分割。)。

int countA = 0; 
int countB = 0; 

for(int index = 0; index < userInput.length(); index++) 
{ 
    char c = userInput.charAt(index); 

    if(c == 'A') 
    { 
     countA++; 
    } 
    else if(c == 'B') 
    { 
     countB++; 
    } 
    else 
    { 
     // some other character detected 
    } 
}