该代码应该从键盘读取不确定数量的输入,并将所有选项卡返回为*。当我在eclipse中运行它时,我的程序似乎可以运行,并且没有任何错误。当我在提交网站上提交代码时,这就是我得到的错误。
线程“ main”中的异常java.util.NoSuchElementException:在replaceHW.main(replaceHW.java:9)的java.util.Scanner.nextLine(Scanner.java:1589)处找不到行
import java.util.Scanner;
public class replaceHW {
public static void main(String[] args) {
//write a program that converts all TABS in your code
//with STARS i.e. *
Scanner in = new Scanner(System.in);
String ans;
while(!(ans = in.nextLine()).equals(""))
System.out.println(ans.replace("\t","*"));
}
}
答案 0 :(得分:0)
您的问题很简单:nextLine()
与hasNextLine()
协同工作:正确的代码是:
try (Scanner in = new Scanner(System.in)) {
while (in.hasNextLine()) {
String line = in.nextLine();
if (!"".equals(line)) {
System.out.println(ans.replace("\t","*"));
}
}
hasNextLine()
将尝试读取需要很多输入才能找到一行。