我正在编写一个读取文本和转换引号的程序,我在使用条件hasNext()
完成循环时遇到问题,程序应该以EOF结束,你能帮我吗?
这是我提到的周期:
boolean reference= false;
while(input.hasNext())
{
String text = input.nextLine();
for (int i = 0; i < text.length(); i++)
{
if(text.charAt(i)=='"' && reference==false)
{
reference=true;
System.out.print("``");
}
else if(text.charAt(i)=='"' && reference == true)
{
reference=false;
System.out.print("''");
}
else
{
System.out.print(text.charAt(i));
}
}
}
答案 0 :(得分:2)
@ Jean-FrançoisSavard不,我只是在阅读我在控制台上输入的内容。
从控制台读取时,hasNext()
方法将循环,直到 ctrl + z (窗口)或 ctrl + <键入kbd> d (unix)。
这是将EOF (打破此循环)发送到System.in
的方法。
答案 1 :(得分:0)
我认为您应该尝试while (input.hasNextLine())
因为您之后阅读了下一行。