首页 文章

使用For循环迭代分裂索引

提问于
浏览
1

我有一个程序,用户输入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

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

    首先,您需要使用 Integer.parseInt("yourString")String 解析为int,因为您可以使用 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
    System.out.println((int) intIndex[i]);
    

    这行代码抛出错误,因为您试图将String解析为int原语,这是不允许的 .

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

相关问题