我正在尝试执行此代码,但它每次都给我随机值:
输出:
代码:
public class Temp {
static int x;
static {
try {
x = System.in.read();
} catch (IOException ex) {
System.out.println(ex);
}
}
}
class TempA {
public static void main(String[] args) {
System.out.println(Temp.x);
}
}
答案 0 :(得分:1)
这些值不是随机的,它们是:
[...]来自输入流的下一个数据字节。值字节作为int返回,范围为0到255.如果没有字节可用,因为已到达流的末尾,则返回值-1。 http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()
这意味着如果您输入a
并点击Enter
,您将获得97
。
如果您要查找键入的内容(而不是原始字节值),则需要进行一些更改...使用Scanner
类的最简单方法。以下是获得数值的方法:
import java.util.Scanner;
public class Temp {
static int x;
static {
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
}
}
class TempA {
public static void main(String[] args) {
System.out.println(Temp.x);
}
}
答案 1 :(得分:0)
这是因为它会返回您输入的第一个数字/字符的ASCII
值。