在 Java 中从命令行读取字符串列表
Reading a list of strings from command line in Java
我正在尝试从 Java 中的命令行读取字符串列表,然后打印这些字符串。
这是代码:-
public class Example {
public static void main(String args[] ) throws Exception {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null) {
list.add(line);
}
System.out.println(list);
}
}
但是它进入了一个无限循环并且永远不会打印列表。
谁能帮我指出我代码中的错误?
您的代码没有任何问题。它不会终止只是因为它还没有得到正确的"signal"。
完成输入后尝试Ctrl+D
。它应该适用于大多数情况。
或 Ctrl+Z
用于 windows 命令行。
如果你用的是Java8.还有一个更短的版本
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.stream.Collectors;
public class ReadLinesFromStdin {
public static void main(String [] args) throws IOException {
List<String> lines = new BufferedReader(new InputStreamReader(System.in))
.lines().collect(Collectors.toList());
System.out.println(lines);
}
}
检查 while 循环内的终止条件将解决您的问题。
public class Example {
public static void main(String args[] ) throws Exception {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while(true) {
line = br.readLine();
if (line == null || line.isEmpty()) {
break;
}
list.add(line);
}
System.out.println(list);
}
}
我正在尝试从 Java 中的命令行读取字符串列表,然后打印这些字符串。 这是代码:-
public class Example {
public static void main(String args[] ) throws Exception {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null) {
list.add(line);
}
System.out.println(list);
}
}
但是它进入了一个无限循环并且永远不会打印列表。 谁能帮我指出我代码中的错误?
您的代码没有任何问题。它不会终止只是因为它还没有得到正确的"signal"。
完成输入后尝试Ctrl+D
。它应该适用于大多数情况。
或 Ctrl+Z
用于 windows 命令行。
如果你用的是Java8.还有一个更短的版本
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.stream.Collectors;
public class ReadLinesFromStdin {
public static void main(String [] args) throws IOException {
List<String> lines = new BufferedReader(new InputStreamReader(System.in))
.lines().collect(Collectors.toList());
System.out.println(lines);
}
}
检查 while 循环内的终止条件将解决您的问题。
public class Example {
public static void main(String args[] ) throws Exception {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while(true) {
line = br.readLine();
if (line == null || line.isEmpty()) {
break;
}
list.add(line);
}
System.out.println(list);
}
}