Сбор символов образует строку и преобразовывает их в целые числа

1
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner scan = new Scanner(System.in);
    int rounds, antonia = 100, david = 100;
    int rolla, rolld;
    String score;
    String[] scorenospace;
    System.out.println("How many rounds would you like to play? (1-15)");
    rounds = scan.nextInt();
    while (rounds > 0) {
        score = scan.nextLine();
        scorenospace = score.split(" ");
        rolla = Integer.parseInt((scorenospace[0]));
        rolld = Integer.parseInt((scorenospace[1]));
        if (rolla > rolld) {
            david = david - rolla;
        } else if (rolla < rolld) {
            antonia = antonia - rolld;
        } else if (rolla == rolld) {
        }
        rounds--;
    }
    System.out.println(antonia + david);
}

Пользователь будет вводить 2 числа, разделенные пробелом. Я хотел бы индивидуально собирать и сравнивать 2 числа, введенные в виде строки. Как мне это сделать?

Мой код генерирует исключение outofbounds. Я очень смущен.

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner scan = new Scanner(System.in);
    int rounds, antonia = 100, david = 100;
    int rolla, rolld=0;
    String score;
    System.out.println("How many rounds would you like to play? (1-15)");
    rounds = scan.nextInt();
    while (rounds > 0) {
        score = scan.nextLine();
        rolla = score.charAt(0);
        rolld = score.charAt(2);
        if (rolla > rolld) {
            david = david - rolla;
        } else if (rolla < rolld) {
            antonia = antonia - rolld;
        } else if (rolla == rolld) {
        }
        rounds--;
    }
    System.out.println(antonia + david);
}

Я также попробовал метод chatAt, но не могу заставить код работать. ЛЮБАЯ помощь будет принята с благодарностью. Я извиняюсь за посредственное качество кода. Я новичок в программировании и стараюсь как можно больше учиться. Большое спасибо за всю помощь, Cheers :)

  • 0
    С какими входами он бросает IOOB? Юридические материалы?
  • 0
    Какой вклад вы предоставляете?
Показать ещё 6 комментариев
Теги:
string
arrays
int
compare

1 ответ

0
Лучший ответ

Просто догадайтесь, если вы хотите, чтобы ввод был примерно таким:

3 12 17 // where 3 is rounds and 12 and 17 are values
23 45 // 23 and 45 again as values
12 36 // 12 and 36 again as values

то вы можете изменить свой код так:

rounds = Integer.parseInt(scan.nextLine());
while (rounds > 0) {
    score = scan.nextLine();
    rolla = Integer.parseInt(score.split(" ")[0]);
    rolld = Integer.parseInt(score.split(" ")[1]);
    .
    .
    .
}

добавив еще одну вещь: score.charAt(0) предоставит вам ascii-эквивалент.

  • 0
    Мне нужно, чтобы вход был примерно таким: 2 //number of rounds 3 4 //values 4 6 //values again
  • 0
    @Naaah отредактировал мой ответ в соответствии с вашим вкладом
Показать ещё 13 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню