Java输入与输出语句详解:从基础概念到应用实践

目录

一.java的输出语句:

System.out.println()  —–输出并换行

System.out.print()  —–输出但不换行

System.out.printf()  —–类似C语言的printf()输出语句,按格式进行输出

二.java的输入语句:

 2.1—–Scanner的基础用法:

 2.2—–String类型next()、nextLine()、hasNext(),hasNextLine()

2.3—–int类型nextInt()、nextInt(int radix)、hasNextInt()

 2.4—–浮点数 double 类型输入

2.5—– boolean 布尔类型输入


对于初识java的小伙伴,时常为输入和输出语句所困扰,对于next()、nextLine()、hasNext()、hasNextLine()、nextInt()、hasNextInt() 等类的使用方法很是头疼。这篇博客将作出详细解释,尽可能的帮助大家扫除障碍,那么废话不多说,我们直接开始吧~

一.java的输出语句:

java常用的输出语句有三种:

  • System.out.println()  —–输出并换行

  • 示例: 

    public class JavaPrint {
        public static void main(String[] args) {
            System.out.println("Hello");//输出Hello并换行
            System.out.println("World");//输出World并换行
        }
    }

     

  • System.out.print()  —–输出但不换行

  • 示例:

    public class JavaPrint {
        public static void main(String[] args) {
            System.out.print("Hello");//输出Hello不换行
            System.out.print("World");//输出World不换行
        }
    }

  • System.out.printf()  —–类似C语言的printf()输出语句,按格式进行输出

  •  输出格式详情:

    //%表示进行格式化输出,%之后的内容为格式的定义
    格式控制符			说明
    --------------------------------------------------
    	%d			输出int型数据
    	%c			输出char型数据
    	%f			输出浮点型数据,小数部分最多保留6位
    	%s			输出字符串数据
    	%md			输出的int型数据占m列
    	%m.nf		输出的浮点型数据占m列,小数点保留n位
    

    示例: 

    public class JavaPrint {
        public static void main(String[] args) {
           int a=1;
           int b=2;
           double c=3.1415926;//变量的赋值与初始化
           System.out.printf("%5d %5d %7.2f",a,b,c);//对数据按格式输出
        }
    }
    

     这里由于其他的输出格式类似,就不再赘述了 

    二.java的输入语句:

    键盘输入代码的四个步骤:
    1、导包:import java.util.Scanner;
    2、创建Scanner类型的对象:Scanner scanner= new Scanner( System.in) ;
    3、调用Scanner类的相关方法(next() / nextXxx()) ,来获取指定类型的变量
    4、释放资源:调用Scanner对象的close()方法, scanner.close();

     2.1—–Scanner的基础用法:

    //1.导包
    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
            //2.创建Scanner类型的对象
            Scanner sc=new Scanner(System.in);
            //输出提示信息
            System.out.print("请输入:");
            //3、调用Scanner类的相关方法(`next() / nextXxx()`) ,来获取指定类型的变量
            int a=sc.nextInt();
            System.out.print("输入的数据为:"+a);
            //4、释放资源:调用Scanner对象的close()方法,-> `scanner.close();`
            sc.close();
        }
    }

     2.2—–String类型next()、nextLine()、hasNext(),hasNextLine()

  • String类型的next()与nextLine():
  • (1)这两个方法都是属于String类型的方法,都可以用来获取在控制台输入的字符串。

    (2)next()方法获取的是没有被空格、换行、回车符隔断的连续字符串。

    (3)nextLine()方法获取的是在回车符之前,所输入的一整行字符串,回车符作为分割点,空格、换行符没有影响。

    示例1:

    //1.导包
    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
    
            //创建Scanner类型的对象
            Scanner scanner = new Scanner(System.in);
            //输出提示信息
            System.out.print("请输入一个没有空格的字符串:");
            String string1 = scanner.next();//输入字符串
            System.out.println("输入一个没有空格的字符串后,得到的结果:" + string1);
    
            System.out.println("");//打印换行
            System.out.println("===================分隔线========================");
            System.out.println("");//打印换行
    
            System.out.print("请输入一个有空格的字符串:");
            String string2 = scanner.next();
            System.out.println("输入一个有空格的字符串后,得到的结果:" + string2);
    
            scanner.close();
        }
    }

                                                                        输出:

      由于有空格键,这里的Hello World被隔断,所以只输出了Hello

    示例2:

    //1.导包
    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
    
            //创建Scanner类型的对象
            Scanner scanner = new Scanner(System.in);
            //输出提示信息
            System.out.print("请输入一个没有空格的字符串:");
            String string1 = scanner.nextLine();//输入字符串
            System.out.println("输入一个没有空格的字符串后,得到的结果:" + string1);
    
            System.out.println("");//打印换行
            System.out.println("===================分隔线========================");
            System.out.println("");//打印换行
    
            System.out.print("请输入一个有空格的字符串:");
            String string2 = scanner.nextLine();
            System.out.println("输入一个有空格的字符串后,得到的结果:" + string2);
    
            scanner.close();
        }
    }

    输出:

    而nextLine()不受除了回车键以外的 空格,换行符影响

  • String类型的hasNext()与hasNextLine() :
  • 这两个方法对于输入流的检测存在差异:

    1. hasNext()方法以检测接下来是否还有非空字符为主,如果有则返回true,否则false
    2. hasNextLine()方法,从名字可以推测,是以行的方式去判断的,即判断接下来是否还有一行(\n空行也被当作一行),如果有则返回true,反之返回false

     示例1:

    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
    
    
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("请输入:");//输入提示信息
            while(scanner.hasNext()){  //判断是否有非空字符
                String string1=scanner.next();//输入
                System.out.println("这个字符串是:"+string1);
            }
    
            scanner.close();
        }
    }

     输出:

     注意这里是一行一行的进行输出

    示例2:

    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
    
    
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("请输入:");
            while(scanner.hasNextLine()){//判断是否为字符串,并包括空格在内
                String string1=scanner.nextLine();//输入
                System.out.println("这个字符串是:"+string1);
            }
    
            scanner.close();
        }
    }

    输出:

    这里则是按行输出,通常情况下,最好是hasNext()next()方法搭配使用,hasNextLine()nextLine()方法搭配使用 

    2.3—–int类型nextInt()、nextInt(int radix)、hasNextInt()

     (1)nextInt()方法:获取一个从控制台输入的整数。如果输入的数字不是int型,会报错;如果数字之间被空格隔开,此时与next()方法类似,会获取第一个空格之前的数字。

    示例:

    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
    
    
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("请输入一个数字:");
            int n=scanner.nextInt();//输入数字
            System.out.println("这个数字是:"+n);//打印与数字相关的信息
    
            scanner.close();
        }
    }

    输出:

     如果输入的不是数字,会报错:

    (2)nextInt(int radix)方法:括号中的int radix代表的是读入数字的进制,比如2进制、8进制、10进制、16进制,代表进制的选择,如果为空,默认是10进制。方法执行完成后,读入的数字会转换成10进制的数字进行返回。 

     示例:

    import java.util.Scanner;
    
    public class JavaSanner {
        public static void main(String[] args) {
    
    
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("请输入一个数字:");
            int n=scanner.nextInt(2);//输入一个二进制数字
            System.out.println("这个数字是:"+n);//打印时会转化为十进制
    
            scanner.close();
        }
    }

    输出:

    二进制101 转十进制  —-》1*2^0+0*2^1+1*2^2=5 

     (3) hasNextInt()方法会先对输入的数据进行数据类型判断,如果得到的是int类型,则返回true给到aa,否则返回false。

    示例:

    import java.util.Scanner;
    
    public class JavaSanner {
    
            public static void main(String[] args) {
    
    
                Scanner scanner = new Scanner(System.in);
                System.out.print("请输入一个数字:");
               boolean a=scanner.hasNextInt();//用返回的值判断读入的是否是数字
               if(a){
                   System.out.println("输入正确!");//如果返回值是true,则输入的是数字
               }
               else{
                   System.out.println("输入错误!");//如果返回值是false,则输入的不是数字
               }
            }
        }

     输出:

     2.4—–浮点数 double 类型输入

    与int基本类似,这里就不做过多说明,代码解释:

    import java.util.Scanner;
    
    public class JavaSanner {
    
        public static void main(String[] args) {
            //2、定义一个Scanner对象
            Scanner scanner = new Scanner(System.in);
    
            System.out.println("请输入小数或整数:");//输出提示信息
            //3、调用Scanner类的相关方法nextDouble方式接收小数数据
            if (scanner.hasNextDouble()) {
                // 判断输入的是否是小数数据
                double a = scanner.nextDouble();
                // 接收小数
                System.out.println("接收小数数据:" + a);
            } else {
                // 输入错误的信息
                System.out.println("输入的不是小数数据!");
            }
            //4、释放资源:调用Scanner对象的close()方法, `scanner.close();`
            scanner.close();
        }
    }

    输出:

    2.5—– boolean 布尔类型输入

    代码解释:

    import java.util.Scanner;
    
    public class JavaSanner {
    
        public static void main(String[] args) {
            //2、定义一个Scanner对象
            Scanner scanner = new Scanner(System.in);
    
            System.out.println("请输入布尔值:" );//输出提示信息
            //3、调用Scanner类的相关方法nextBoolean方式接收布尔数据
            if (scanner.hasNextBoolean()) {
                // 判断输入的是否是布尔数据
                boolean a = scanner.nextBoolean();
                // 接收布尔数据
                System.out.println("接收布尔数据:" + a);
            } else {
                // 输入错误的信息
                System.out.println("输入的不是布尔数据!");
            }
            //4、释放资源:调用Scanner对象的close()方法, `scanner.close();`
            scanner.close();
        }
    }

    输出:

     博客到这里也是结束了,制作不易,喜欢的小伙伴可以点赞加关注支持下博主,这对我真的很重要~~

    作者:IYF.星辰

    物联沃分享整理
    物联沃-IOTWORD物联网 » Java输入与输出语句详解:从基础概念到应用实践

    发表回复