我试图使用Console类来获取用户的输入,但是当我调用时会返回一个null对象System.console()
.在使用System.console之前,我是否必须更改任何内容?
Console co=System.console();
System.out.println(co);
try{
String s=co.readLine();
}
Run Code Online (Sandbox Code Playgroud)
ath*_*spk 233
使用Console读取输入(仅在IDE外部可用):
System.out.print("Enter something:");
String input = System.console().readLine();
Run Code Online (Sandbox Code Playgroud)
另一种方式(无处不在):
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter String");
String s = br.readLine();
System.out.print("Enter Integer:");
try {
int i = Integer.parseInt(br.readLine());
} catch(NumberFormatException nfe) {
System.err.println("Invalid Format!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
System.console()在IDE中返回null,
因此如果您确实需要使用System.console(),请从McDowell中读取此解决方案.
小智 113
Scanner in = new Scanner(System.in);
int i = in.nextInt();
String s = in.next();
Run Code Online (Sandbox Code Playgroud)
小智 35
从控制台/键盘读取输入字符串的方法很少.以下示例代码显示如何使用Java从控制台/键盘读取字符串.
public class ConsoleReadingDemo {
public static void main(String[] args) {
// ====
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please enter user name : ");
String username = null;
try {
username = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("You entered : " + username);
// ===== In Java 5, Java.util,Scanner is used for this purpose.
Scanner in = new Scanner(System.in);
System.out.print("Please enter user name : ");
username = in.nextLine();
System.out.println("You entered : " + username);
// ====== Java 6
Console console = System.console();
username = console.readLine("Please enter user name : ");
System.out.println("You entered : " + username);
}
}
Run Code Online (Sandbox Code Playgroud)
代码的最后一部分使用了java.io.Console
类.System.console()
在通过Eclipse运行演示代码时,无法获取Console实例.因为eclipse将您的应用程序作为后台进程运行,而不是作为具有系统控制台的顶级进程运行.
Jon*_*eet 17
这取决于您的环境.javaw
例如,如果您正在运行Swing UI ,则无法显示控制台.如果您在IDE中运行,它将在很大程度上取决于特定IDE对控制台IO的处理.
从命令行来看,它应该没问题.样品:
import java.io.Console;
public class Test {
public static void main(String[] args) throws Exception {
Console console = System.console();
if (console == null) {
System.out.println("Unable to fetch console");
return;
}
String line = console.readLine();
console.printf("I saw this line: %s", line);
}
}
Run Code Online (Sandbox Code Playgroud)
运行这个只是java
:
> javac Test.java
> java Test
Foo <---- entered by the user
I saw this line: Foo <---- program output
Run Code Online (Sandbox Code Playgroud)
另一个选择是使用System.in
,您可能想要包装在BufferedReader
读取行中,或使用Scanner
(再次包装System.in
).
在这里找到一些关于从控制台读取的好答案,这里使用"扫描仪"从控制台读取的另一种方式:
import java.util.Scanner;
String data;
Scanner scanInput = new Scanner(System.in);
data= scanInput.nextLine();
scanInput.close();
System.out.println(data);
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试这个。希望这会有所帮助。
String cls0;
String cls1;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
cls0 = in.nextLine();
System.out.println("Enter a string");
cls1 = in.nextLine();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
638101 次 |
最近记录: |