在java中打破文件txt

时间:2014-11-11 16:01:47

标签: java loops io break

我在记事本中的数据 1,2,3,4,5,6,7,8,9,10...为什么str ==5使用break时工作不好,我的数据应该在数字5时停止...只显示1,2,3,4,5,6,7,8,9,10...

 Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
            while (sc.hasNextInt()){
                int str = sc.nextInt();
                for (int i=0; i<str; i++){
                    if (str == 5);
                    break;
                }

                System.out.print(str+ " ");
            }       
            sc.close();
        }
    }

4 个答案:

答案 0 :(得分:2)

你需要摆脱;在if(str==5);之后应该没有;。

for (int i=0; i<str; i++){
    if (str == 5)
    {
        break;
    }
}

问题是你的循环实际上并没有进行任何处理。你循环最多6次,但你在循环中没有做任何事情。在这种情况下,你不能在所有循环中改变你的输出完全没用......

你只是打破for循环而不是while循环。如果你想要摆脱while循环,你应该这样做:

Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
            while (sc.hasNextInt()){
                int str = sc.nextInt();
                System.out.print(str+ " ");
                if (str == 5)
                {
                   break;
                }
            }       
            sc.close();
        }
}

答案 1 :(得分:1)

您只需更改代码即可:

 Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
            int str = sc.nextInt();
            while (sc.hasNextInt() && str != 6){
                System.out.print(str+ " ");
                str = sc.nextInt();
            }       
            sc.close();
        }
    }

答案 2 :(得分:0)

只是回答这个例子,你的if后面的;结束if语句。使用大括号{}

if(str==5){
    break;
}

这样:

 Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
        while (sc.hasNextInt()){
            int str = sc.nextInt();
                if (str == 5){
                    break;
                }

            System.out.print(str+ " ");
        }       
        sc.close();
    }
}

另一种方法是加载整行,在,上拆分,然后遍历以下数组,如果有5,则打印出来,如果找到则打印出来

答案 3 :(得分:0)

我认为只要找不到数字,解决办法就是循环。

boolean foundFive = false;
Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
while (sc.hasNextInt() && !foundFive) {
    int number = sc.nextInt();
    System.out.print(number+ " ");
    if (number == 5) {
        foundFive = true;
    }
}       
sc.close();