Java 控制台输入输出


Java输入输出

控制台输入

使用 java.util 包中的Scanner类进行输入

要使用它,在构造 Scanner 对象时,需要将其与“标准输入流” System.in 关联

Scanner 的构造与其方法:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        
        Scanner in = new Scanner(System.in);	// 构造Scanner对象并与标准输入流 System.in 关联
        										// 区别于从控制台输入,在文件输入的操作中,Scanner对象要与一个 File 对象关联并指定字符集编码
        
        String str = in.next();	// 读取输入的下一个单词(用空格作为分隔符的单词)
        
        char c = in.next().charAt(0);	// 读取char字符
        
        String strLine = in.nextLine();	// 出去输入的下一行内容
        
        int d = in.nextInt();	// 读取并转换下一个表示整数或浮点数的字符序列
        int lf = in.nextDouble();	
        
        boolean flag0 = in.hasNext();
        boolean flag1 = in.hasNextInt();
        boolean flag2 = in.hasNextDouble();	// 检测是否还有表示整数、浮点数或其他单词的下一个字符序列
        
    }
}

控制台输出

使用标准输出流 System.out 的方法进行输出

java 实现了和 **c **一样的 printf 标准输出方法

// java.lang包下的所有类、方法可以不用import.  language是基本包

public class Main {
    public static void main(String[] args) {
        int zhengshu = 53;
        
        System.out.println("在控制台换行输出");
        
        System.out.print("不换行输出");
        
        System.out.printf("格式化输出,可以使用格式化方法,下面一个数字是整数 %d \n", zhengshu);
        
    }
}

使用Scanner类进行控制台输入实际上进行了一层正则化解析、封装。

例如 nextInt()、nextDouble()方法,不用进行强制类型转换,自动的从输入字符序列中将字符序列转换为int或double类型。

故而其速度是相当慢的。

要解决一些算法题,需要使用到 java.io包下的 BufferedReader 类。