2014-11-05 95 views
0

我正在試圖編寫一個程序,每次顯示一個特定的字母時將會計數1。所以我希望它顯示A:4如果AAAA被輸入。我一直在這方面工作數小時,但是我一直無法實現。如果沒有數組,還有什麼辦法可以做到這一點嗎? 這是我目前的代碼。Java:每次顯示一個字母時如何計算一次

public static void main(String[] args) { 
    Scanner kb = new Scanner(System.in); 
    String A; 
    String B; 
    A = kb.nextLine(); 
    System.out.println("Person A: Please enter your amount of wins"); 
    B = kb.nextLine(); 
    System.out.println("Player B: Please enter your amount of wins"); 
    kb.nextLine(); 
    if() 
} //main 
+0

您發佈的代碼似乎無關您的問題聲明。你能否詳細說明兩條輸入? – 2014-11-05 05:56:54

+0

用戶輸入應該是什麼?是數字還是字符串? – DnR 2014-11-05 05:57:42

+0

嗯,我想要的是它有2名球員,他們進入那裏贏得這樣的:所以如果球員A:贏了兩次,他們會放入AA。然後如果玩家B贏了5次,他們會輸入BBBBB:那麼,如果玩家A:2玩家B:5 – 2014-11-05 06:00:47

回答

1

希望這完全適用於您

public static void main(String[] args) { 

     Scanner kb = new Scanner(System.in); 
     System.out.println("Enter Player A value"); 

     String A = kb.nextLine(); 
     calsi(A); 

     System.out.println("Enter Player B value"); 
     String B = kb.nextLine(); 
     calsi(B); 
    } 

    public static void calsi(String cmdVal){ 

     if (cmdVal.length()>0) { 
      String firstletter=cmdVal.substring(0,1); 
      System.err.println(firstletter+":"+cmdVal.length()); 
     }else{ 
      System.err.println("No input has given"); 
     } 
    } 
+0

非常感謝! – 2014-11-05 06:28:00

0

如果您使用番石榴,它是死的簡單;使用CharMatcher

例如,對於匹配字符A,你創建:

private static final CharMatcher UPPERCASE_A = CharMatcher.is('A'); 

然後你會使用:

UPPERCASE_A.countIn(yourInput) 

算在yourInputA出現的次數。

否則,一個簡單的字符串循環會爲你做。如果是Java 8,則可以使用.chars()

0

你可以試試這段代碼。但是在這裏,數組用於存儲一行的所有字符。

公共靜態無效的主要(字串[] args){

Scanner kb = new Scanner(System.in); 
    String A = kb.nextLine(); 
    char[] chars = A.toCharArray(); 
    int count=0; 
    for(int i=0;i<chars.length;i++){ 
     if(chars[i]=='A'){ 
      count++; 
     } 
    } 

    System.out.println(count); 
    return; 
} 
+0

謝謝。你能用線掃描器來做嗎? – 2014-11-05 06:16:07

+0

@BenjaminMcIntyre線掃描儀?你的意思是,你想硬編碼整個字符串(AAAA或BBB),還是想從控制檯逐一輸入? – 2014-11-05 06:24:07