概述
输入语句
关于控制台的输入,主要介绍三种方法。
1.BufferedReader
传统、繁琐、效率低
- 每次调用InputStreamReader()中的一个read()方法
会导致从底层输入流读取一个或多个字节 - InputStreamReader 是字节流通向字符流的桥梁
- 字节——>字符 可提前从底层流读取更多字节,使其超过满足当前读取操作所需的字节,以提高效率
- 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
2.System.in
不灵活
System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字
3.Scanner (推荐)
方便、功能强大(JDK5以后)
- 格式1:Scanner sc = new Scanner(new BufferedInputStream(System.in));
- 格式2:Scanner sc = new Scanner(System.in);
需要输入多行数据:
while(sc.hasNextInt()){...}
while(sc.hasNext()){...}
读入一个字符串:
String str = sc.next();
读入一整行数据:
String lineString
= sc.nextLine();
读入一个整数:
int intNumber = sc.nextInt();
输入案例:
输入数据有多组,每组占2行,第一行为一个整数N,指示第二行包含N个实数
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n
= sc.nextInt();
for(int i =0;i<n;i++){
double a = sc.nextDouble();
......
}
}
当通过new Scanner(System.in)创建一个Scanner后
- 控制台会一直等待输入,直到敲回车键结束
- 把所有输入的内容传给Scanner,作为扫描对象。
- 如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。
例如:
public class TestScanner {
public static void main(String[] args) {
System.out.println(“请输入字符串:”);
Scanner s = new Scanner(System.in); //System.in取得用户输入
while(true) {
String lin = s.nextLine(); //用以取得用户输入的字符串
if(lin.equals(“exit”)) break;
System.out.println(">>>" + lin);
}
}
}
拓展:
Scanner取得的输入以space, tab, enter 键为结束符,
但是要获取空格、分隔符、回车这些符号怎么办?
方法:BufferedReader的readLine( )
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//java.io.InputStreamReader继承了Reader类
输出语句
1.System.Out.printIn(" ");
最常用,会把括号里的内容转换为字符串输出到控制台 + 换行
当输出:
基本数据类型 ----- 转换为字符串
对象类型 ---- 自动调用对象的toString()方法
2.System.Out.print(" ");
输出(不换行)
3.System.Out.printf(String format, Object … args);
延续了C语言的输出方式,通过格式化文本和参数列表输出
关于toString():
- toString()是Object类的方法
- 所有的类都直接/间接的继承Object,因此所有的类都具有Object类的方法toString()
- toString()作用是将 类——>字符串
- 一般会在toString()方法中,会把类的所有属性(成员变量)全部合成一个字符串返回回来
本人原创(借鉴学习其他朋友的博文写成,如有问题,请指教)
最后
以上就是舒心荔枝为你收集整理的JAVA控制台的输入输出语句的全部内容,希望文章能够帮你解决JAVA控制台的输入输出语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复