Итерация по разделенному индексу с циклом For - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть программа, в которой пользователь вводит 5 слов целых чисел, разделенных пробелами.Затем программа выводит символы, соответствующие цифрам.Например: sPaghetti omElette Apple Crouton Exciting и 2 3 1 1 1 приведут к выводу PEACE.

Вот мой код:

import java.util.Scanner;
Scanner userInput = new Scanner(System.in);


System.out.print("Enter five words: ");
String fiveWords = userInput.nextLine();

// Split string by word
String[] wordIndex = fiveWords.split(" ");


System.out.print("Enter five integers: ");
String fiveInts = userInput.nextLine();

// Split string by integer
String[] intIndex = fiveInts.split(" ");


for (int i = 0; i < 5; i++) {
     // Next line doesn't work, though I believe it should
     System.out.println((int) intIndex[i]);
     // Because of previous line, this one shouldn't work
     System.out.println(wordIndex[i].charAt(number));
}

При попытке перебрать индекс с помощью charAt() Iпродолжайте получать ошибку

required: int
found: String

, и приведение к типу int не работает.Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Вам нужно изменить в двух местах:

Во-первых, вам нужно проанализировать String для int с Integer.parseInt("yourString"), потому что вы можете получить доступ к массиву с int адресом

Второйчтобы получить правильный вывод, вам нужно сделать -1 по индексу, потому что массив начинается с индекса 0, как показано ниже:

for (int i = 0; i < 5; i++) {
    int number = Integer.parseInt(intIndex[i]);
    System.out.print(wordIndex[i].charAt(number-1));
}
0 голосов
/ 09 декабря 2018
System.out.println((int) intIndex[i]);

эта строка кода выдает ошибку, потому что вы пытаетесь проанализировать String как int примитив, что недопустимо.

используйте Integer.parseInt(intIndex[i]), чтобы получить объект Integer, который можно присвоить int priitiveчерез автоматическую распаковку.

...