【Java启程】数据输入
Java不支持直接的数据输入,需要导入
java.util
下的
Scanner
包。导入方式为在类前输入:
import java.util.Scanner;
导包完成后,还需要创建对象实例。格式为:
Scanner sc = new Scanner(System.in);
这个格式可以类比我们定义一个数值型变量int i = 1;
,可以看到这两条语句等号的左端作用相同:说明变量类型,然后给出变量名。不同的地方在于Scanner是类,归属引用数据类型,其等号右端new Scanner(System.in)
的作用是创建一个Scanner对象。这条语句除了变量名sc
可以改成任意外,其余都不可以变。
再然后就可以调用方法了。我们通过api来查看Scanner下的方法:
这里仅列举两个常用的方法,一个是输入整数的nextInt()
,其调用格式为:sc.nextInt()
,用一个变量接受则是如下格式:
int i = sc.nextInt();
一个是输入字符串的next()
。如果输入的字符串中需要有空格则用nextLine()
。
最后,在输入操作完成后,有的开发工具会提示你关闭Scanner对象以释放空间,格式为sc.close();
。但要注意的是关闭时会一并关掉System.in且在本次执行中不能再次打开,所以如果输入操作发生在循环或方法中,酌情考虑是否忽略。
import java.util.Scanner;
/**
* 数据输入:Scanner
*
* @author XuF
*/
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请给line赋一个字符串值:");
String line = sc.nextLine();
System.out.println("line: " + line);
// close会关掉System.in且不能再次打开
sc.close();
}
}
运行过程为:
请给line赋一个字符串值:
由于用了print()
而非println()
,所以这里不换行。
输入数据:王二小
请给line赋一个字符串值:王二小
line: 王二小
程序执行完毕。
新人上路,求给意见。