Java 扫描仪未读取下一行并退出循环

Java 扫描仪未读取下一行并退出循环,java,loops,java.util.scanner,Java,Loops,Java.util.scanner,您好,我正在做一个程序,它允许用户将数据段插入扫描仪输入,我有一个循环来检查下一行是否空白,但我希望它检查下2-3行的文本,因为它会自动退出时,段落 守则: String tex =""; String line; while (in.hasNextLine()) { line = in.nextLine(); if (line.isEmpty()) { break; }

您好,我正在做一个程序,它允许用户将数据段插入扫描仪输入,我有一个循环来检查下一行是否空白,但我希望它检查下2-3行的文本,因为它会自动退出时,段落

守则:

    String tex ="";
    String line;
    while (in.hasNextLine()) {
        line = in.nextLine();
        if (line.isEmpty()) {
            break;
        }
        tex += line + "\n";
    }

我是否可以添加另一个if语句?或者有没有更有效的方法来获得我想要的输出?。我希望能够在不提前终止的情况下将一两个段落发布到扫描仪中(我使用扫描仪进行更大的用途)。

以下是解决您问题的方法

连续计算条件
isBlank()
TRUE
的次数 如果接受最大值,则断开

publicstaticvoidmain(字符串[]args){
测试的最终var最大线=2;
var反检验=0;
try(var sc=新扫描仪(System.in)){
final var al=新的ArrayList();
System.out.println(“输入文本:”);
while(true){
最终变量行=sc.nextLine();
if(line.isBlank()){
反测试++;
如果(反测试>=测试的最大线)
打破
}否则{
反测试=0;
}
al.添加(行);
}
for(最终字符串v:al){
系统输出打印Ln(v);
}
}
}
更新26.02.21之前: 如果出现指定的条件,continue语句将中断一次迭代(在循环中),并继续循环中的下一次迭代

break语句也可用于跳出循环


您必须使用
继续
,以便在时不退出
<代码>中断
在条件为<代码>真时停止<代码>

继续
publicstaticvoidmain(字符串[]args)引发异常{
String s=“你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”;
尝试(扫描仪=新扫描仪){
字符串行=”,文本=”;
while(scanner.hasNextLine()){
line=scanner.nextLine();
if(line.isBlank()){
System.out.println(“跳过”);
继续;
}
文本+=行+“\n”;
}
System.out.println(文本);
}
}
中断
publicstaticvoidmain(字符串[]args)引发异常{
String s=“你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”;
尝试(扫描仪=新扫描仪){
字符串行=”,文本=”;
while(scanner.hasNextLine()){
line=scanner.nextLine();
if(line.isBlank()){
System.out.println(“跳过”);
打破
}
文本+=行+“\n”;
}
System.out.println(文本);
}
}

以下是您问题的解决方案

连续计算条件
isBlank()
TRUE
的次数 如果接受最大值,则断开

publicstaticvoidmain(字符串[]args){
测试的最终var最大线=2;
var反检验=0;
try(var sc=新扫描仪(System.in)){
final var al=新的ArrayList();
System.out.println(“输入文本:”);
while(true){
最终变量行=sc.nextLine();
if(line.isBlank()){
反测试++;
如果(反测试>=测试的最大线)
打破
}否则{
反测试=0;
}
al.添加(行);
}
for(最终字符串v:al){
系统输出打印Ln(v);
}
}
}
更新26.02.21之前: 如果出现指定的条件,continue语句将中断一次迭代(在循环中),并继续循环中的下一次迭代

break语句也可用于跳出循环


您必须使用
继续
,以便在时不退出
<代码>中断
在条件为<代码>真时停止<代码>

继续
publicstaticvoidmain(字符串[]args)引发异常{
String s=“你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”;
尝试(扫描仪=新扫描仪){
字符串行=”,文本=”;
while(scanner.hasNextLine()){
line=scanner.nextLine();
if(line.isBlank()){
System.out.println(“跳过”);
继续;
}
文本+=行+“\n”;
}
System.out.println(文本);
}
}
中断
publicstaticvoidmain(字符串[]args)引发异常{
String s=“你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”
+“你好世界!你好世界!你好世界!你好世界!你好世界!你好世界!\n”;
尝试(扫描仪=新扫描仪)