这是我的代码段:
import java.util.Scanner;
public class Numrs {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int pos, i = 1;
char d;
while (num <= 10) {
String line = in.nextLine();
pos = line.length();
if (line.length() <= 1000000) {
if (line.charAt(i) == 'R') {
line.replace('R', 'K');
i++;
}
if (line.charAt(i) == 'K') {
line.replace('K', 'R');
i++;
}
num++;
}
}
}
当我输入一个像3这样的单个数字时,它显示一个StringIndexOutOfBoundsException,即使输入了一个2位数字,它也会在没有读取字符串的情况下终止。请帮忙。
答案 0 :(得分:0)
好吧,如果您只输入一个字符/数字,那么大小将为1
,但它将放在索引0
中。并且您正尝试line.charAt(i)
i=1
答案 1 :(得分:0)
这种方法存在许多问题。
1.您需要传递的输入超过一个数字,例如3 this works
,因为在3之后您需要一些字符串。
您没有更新num
。因此它将以无限循环结束
如果您提供超过10的任何值,这将无法工作。我不确定您想要实现的目标。