2014-11-05 2 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

Опубликованного код кажется не связан с вашей постановкой задачи. Не могли бы вы рассказать обо всех строках ввода? –

+0

Каким должен быть пользовательский ввод? это число или строка? – DnR

+0

Ну, я хочу, чтобы у него было 2 игрока, и они туда победили: «Если игрок А: выиграл дважды, они поставили бы АА. И тогда, если игрок B выиграл 5 раз, они бы поместили в BBBBB: тогда он сказал бы Player A: 2 Player B: 5 –

ответ

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

Спасибо, что здорово! –

0

Если вы используете Guava, то он прост; используйте CharMatcher.

Например, для сопоставления символов A, вы бы создать:

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

Тогда вы будете использовать:

UPPERCASE_A.countIn(yourInput) 

подсчитать количество вхождений A в yourInput.

В противном случае простой цикл над строкой сделает это за вас. Если Java 8, вы можете использовать .chars().

0

Вы можете попробовать этот код. Но здесь массив используется для хранения всех символов строки.

государственного статической силы основной (String [] арг) {

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

Спасибо. Можете ли вы сделать это с помощью линейного сканера? –

+0

@BenjaminMcIntyre Line Scanner? Вы имеете в виду, хотите ли вы жестко закодировать всю строку (AAAA или BBB), или вы хотите вводить один за другим из консоли? –