Java 扫描仪未读取下一行并退出循环
您好,我正在做一个程序,它允许用户将数据段插入扫描仪输入,我有一个循环来检查下一行是否空白,但我希望它检查下2-3行的文本,因为它会自动退出时,段落 守则: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; }
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”;
尝试(扫描仪=新扫描仪)