繁体   English   中英

问题是while循环不会以使用Java中的system.in获取输入段落而结束

[英]problem is while loop is not ending in taking input paragraph using system.in in Java

我在使用System.in将小孔段落作为java中的输入并将其存储在数组中时遇到问题。 但是问题是while循环没有结束并且程序卡在了循环中。 我尝试了很多方法,但是循环没有结束。

Scanner sc = new Scanner(System.in);

ArrayList < String > al = new ArrayList<>();

System.out.print("Please Enter Paragraph + \n");
while (!(sc.equals(null))) {
  al.add(sc.next());
}

Scanner sc = new Scanner(System.in);
String para = sc.nextLine();
int x = 0;

while (para != null) {

  if (sc.hasNextLine()) {
    ParaArray[x] = para;
    para = sc.nextLine();

    x++;
  } else {
    para = null;
  }

}

sc是Scanner对象。 当您将sc与null进行比较时,您将永远不会得到true,因为sc永远不会为null。 另外,您的代码似乎有很多错误。 您的问题也不清楚。 请提供正确的问题...-谢谢Tejan Gandhi

Dt:7月29日(阅读您的评论后):

代码分为两部分,一个部分扫描字符,另一部分扫描行。.因为第一个“ while”循环比较sc(这是一个Scanner对象),所以它永远不能为null,循环也永远不会结束。 .equals(null)sc.hasNext()

告诉我这是否适合您。

当您使用“ sc.hasNextline”时,应在判断语句之前放置“ Scanner sc = new Scanner(System.in);”,如下所示:

int num = 0;
        while (true) {
            System.out.println("Please input a number");
            Scanner sc = new Scanner(System.in);
            if (sc.hasNextDouble()) {
                num = sc.nextDouble();

            } else {
                System.out.println("It is not a number,please try again!");
                System.out.println("============================");
            }
        }

在第一个循环之后,您已经有一系列的段落,因此为什么不清楚为什么需要第二个循环。 我也把扫描仪在try ()因为扫描仪是Closeable ,因此在年底被关闭。

import java.util.ArrayList;
import java.util.Scanner;

public class ScanTest {
    public static void main(String[] args) {
        try (Scanner sc = new Scanner(System.in)) {

            ArrayList<String> al = new ArrayList<>();

            while (true) {
                System.out.println("Please Enter Paragraph + \n");
                String readLine = sc.nextLine();
                if (readLine.length() == 0) {
                    break;
                }
                al.add(readLine);
            }

            System.out.println("result:"+al);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM