• 控制台I/O-标准输入读取数据-格式化输入,日期


    一、设备分类

    1.标准输入设备:键盘

    2.标准输出设备:终端窗口

    3.标准错误设备:通常也使用终端窗口

    二、Java语言使用java.lang.System类中的三个公共静态变量来支持

    1.System.in:是InputStream对象,指用户键盘。

    2.System.out:PrintStream 对象,指启动Java应用程序的终端窗口,PrintStream是OutputStream流的子类。

    3.System.err:PrintStream 对象,指启动Java应用程序的终端窗口。

    重新定义流,使其指向其他流目标:System.setIn(),System.setOut(),System.setErr();

    三、标准输入读取数据

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    
    public class SystemIn {
        //标准输入读取数据
        public static void main(String[] args) {
            System.out.println("hello");//访问标准输出设备
            System.err.println("hello err");//访问标准错误设备
            
            InputStream is = System.in;
            InputStreamReader isr  = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            try {
                
                String line = br.readLine();
                while(line != null){
                    System.out.println(line);
                    line = br.readLine();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                if(br!=null){
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            
        }
    
    }

    四、格式化输入

    import java.io.File;
    import java.io.InputStream;
    import java.util.Scanner;
    
    
    public class ScannerIn {
        //格式化输入  文本扫描器
        public static void main(String[] args) {
            
            File file = new File("");
            
            
            InputStream is = System.in;
            try {
                Scanner scanner = new Scanner(is);
                //Scanner scanner = new Scanner(file);
                
                while(scanner.hasNext()){
                    
                    if(scanner.hasNextInt()){
                        int i = scanner.nextInt();
                        System.out.println("整数: "+i);
                    }else if(scanner.hasNextDouble()){
                        Double d = scanner.nextDouble();
                        System.out.println("小数: "+d);
                    }else{
                        String s = scanner.next();
                        System.out.println("字符串: "+s);
                    }
                    
                }
                scanner.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            
        }
    
    
    }

     五、格式化输出

    %s       格式化成字符串,toString();

    %b    参数为null返回false,如果参数为Boolean值或者为Boolean,结果为false或true否则为true

    %c       一个字符(char),Unicode字符。

    %d    有符号十进制整数(int)

    %o    无符号八进制整数

    %x    使用十六进制数字0f的无符号十六进制整数

    %f     单精度浮点数(默认float)、十进制记数法(%.nf  这里n表示精确到小数位后n位.十进制计数)

    %g    科学计数法

    %n      换行符

    %%     打印一个百分号

    1.%:表示格式说明的起始符号,不可缺少。

    2.-:有-表示左对齐输出,如省略表示右对齐输出。

    3.0:有0表示指定空位填0,如省略表示指定空位不填。

    4.m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

    5.l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

    double d = 345.678;  
    String s = "hello!";   
    int i = 1234;  
    //"%"表示进行格式化输出,"%"之后的内容为格式的定义。  
    System.out.printf("%f",d);//"f"表示格式化输出浮点数。  
    System.out.printf("%9.2f",d);//"9.2"中的9表示输出的长度,2表示小数点后的位数。  
    System.out.printf("%+9.2f",d);//"+"表示输出的数带正负号。  
    System.out.printf("%-9.4f",d);//"-"表示输出的数左对齐(默认为右对齐)。  
    System.out.printf("%+-9.3f",d);//"+-"表示输出的数带正负号且左对齐。  
    System.out.printf("%d",i);//"d"表示输出十进制整数。  
    System.out.printf("%o",i);//"o"表示输出八进制整数。  
    System.out.printf("%x",i);//"d"表示输出十六进制整数。  
    System.out.printf("%#x",i);//"d"表示输出带有十六进制标志的整数。  
    System.out.printf("%s",s);//"d"表示输出字符串。  
    System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s);//可以输出多个变量,注意顺序。  
    System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x",i,s);//"X$"表示第几个变量。 

     六、格式化日期

    1.例子

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
    String datestr = sdf.format(new Date());
  • 相关阅读:
    Codeforces Round #538 (Div. 2) F. Please, another Queries on Array?
    2021 ICPC济南 J Determinant
    牛客小白月赛43 F 全体集合
    The 2021 ICPC Asia Regionals Online Contest (II) L Euler Function
    C++文件操作详解
    利用VC实现图像的特殊显示效果 小楼machine
    Mixed mode assembly is built against version 'v2.0.50727' 解决方案 小楼machine
    如何在对话框资源从一个项目导入到另一个项目使用 Visual c + +.net 或 Visual c + + 2005 小楼machine
    灰度图像阈值化分割常见方法总结及VC实现 小楼machine
    Visual C++多媒体设计及图形、图像处理 小楼machine
  • 原文地址:https://www.cnblogs.com/zdf159/p/7267774.html
Copyright © 2020-2023  润新知