使用for循环遍历拆分索引

时间:2018-12-09 04:10:26

标签: java for-loop split

我有一个程序,其中用户输入5个单词的整数,并用空格分隔。然后程序输出与数字相对应的字符。例如:sPaghetti omElette Apple Crouton Exciting2 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()遍历索引时,我不断得到

required: int
found: String

错误和强制转换为int似乎不起作用。我该如何解决?

2 个答案:

答案 0 :(得分:0)

System.out.println((int) intIndex[i]);

这行代码将引发错误,因为您尝试将String解析为不允许的int原语。

使用Integer.parseInt(intIndex[i])获取一个Integer对象,可以通过自动拆箱将其分配给int原始对象。

答案 1 :(得分:0)

您需要在两个地方进行更改:

首先,您需要将String解析为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));
}