如何打破这个循环?

时间:2015-04-01 21:02:45

标签: java string java.util.scanner cycle eof

我正在编写一个读取文本和转换引号的程序,我在使用条件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));
            }   
        }
    }

2 个答案:

答案 0 :(得分:2)

  

@ Jean-FrançoisSavard不,我只是在阅读我在控制台上输入的内容。

从控制台读取时,hasNext()方法将循环,直到 ctrl + z (窗口)或 ctrl + <键入kbd> d (unix)。

这是将EOF (打破此循环)发送到System.in的方法。

答案 1 :(得分:0)

我认为您应该尝试while (input.hasNextLine())因为您之后阅读了下一行。