首页 > 编程语言 >【java】输入输出

【java】输入输出

时间:2023-07-09 11:56:15浏览次数:37  
标签:java 输入输出 System next println print input out

输出

换行输出语句:输出内容后进行换行,格式如下:

System.out.println(输出内容);//输出内容之后,紧接着换行

不换行输出语句:输出内容后不换行,格式如下

System.out.print(输出内容);////输出内容之后不换行

 

示例代码:

public class TestPrintlnAndPrint {
    public static void main(String[] args) {
        String name = "柴林燕";
        int age = 18;

        //对比如下两组代码:
        System.out.println(name);
        System.out.println(age);

        System.out.print(name);
        System.out.print(age);
        System.out.println(); //()里面为空,效果等同于换行,输出一个换行符
        //等价于 System.out.print("\n"); 或  System.out.print('\n');
        //System.out.print();//错误,()里面不能为空   核心类库PrintStream类中没有提供print()这样的方法

        //对比如下两组代码:
        System.out.print("姓名:" + name +",");//""中的内容会原样显示
        System.out.println("年龄:" + age);//""中的内容会原样显示

        System.out.print("name = " + name + ",");
        System.out.println("age = " + age);
    }
}

注意事项:

​ 换行输出语句,括号内可以什么都不写,只做换行处理

​ 不换行输出语句,括号内什么都不写的话,编译报错

​ 如果()中有多项内容,那么必须使用 + 连接起来

​ 如果某些内容想要原样输出,就用""引起来,而要输出变量中的内容,则不要把变量名用""引起来

 

输入

  1. 输入各种类型的数据
import java.util.Scanner;

/*
控制台键盘输入:
1、先声明一个Scanner类型的变量,并赋值一个对象
Scanner:是一个文本扫描仪类型,它的全名称是java.util.Scanner,它是核心类库中定义好的,可以直接用
Scanner是一个类,不是基本数据类型,是引用数据类型,所以必须给它赋值一个“对象”。

2、建议大家写,提示用户输入xx
不写不会错,不够“友好”

3、从控制台接收用户数的一个xx数据,并且赋值给合适的变量
int 变量 = input.nextInt();  //input是Scanner类型的变量,上面叫什么名,下面就用什么名
double 变量 = input.nextDouble();
long 变量 = input.nextLong();
boolean 变量 = input.nextBoolean();
String 变量 = input.next();
char 变量 = input.next().charAt(0);

如果要接收数据的变量的数据类型和用户输入的数据的数据类型不符合,会报 InputMisMatchException输入不匹配错误

4、关闭IO流
 */
public class TestInput {
    public static void main(String[] args) {
        //全名称使用法
//        java.util.Scanner input = new java.util.Scanner(System.in);

        Scanner input = new Scanner(System.in);
        //这句代码唯一可以改的是input,它是一个变量名

        System.out.print("请输入一个整数:");//先执行,先显示这句话
        int num = input.nextInt();//接收键盘输入, 它们有顺序要求
        System.out.println("num = " + num);
        
        System.out.print("请输入一个小数:");
        double d = input.nextDouble();
        System.out.println("d = " + d);

        System.out.print("请输入一个布尔值:");
        boolean b = input.nextBoolean();
        System.out.println("b = " + b);

        System.out.print("请输入一个大整数");
        long big = input.nextLong();
        System.out.println("big = " + big);

        System.out.print("请输入一个字符串");
        String str = input.next();
        System.out.println("str = " + str);

        System.out.print("请输入单个字符:");
        char c = input.next().charAt(0);
        /*
        input.next():接收一个字符串,很多个字符
        input.next().charAt(0):表示从多个字符中取1个字符,取第1个

        charAt(0):表示取一个字符串的第1个
        charAt(1):表示取一个字符串的第2个
        charAt(2):表示取一个字符串的第3个
        ...
        如果输入的字符串的个数少于你要获取的位置,就报错StringIndexOutOfBoundsException字符串下标越界
         */
        System.out.println("c = " + c);

        input.close();//建议大家记得它,代码没有错误,但是会造成JVM以外的操作系统相关内存没有得到是否
    }
}
  1. next()与nextLine()的区别

import java.util.Scanner;

/*
键盘输入:
    next()与nextLine()的区别?

    next(),读取输入的数据时,遇到空格等空白字符,就认为本次数据输入结束
    nextLine(),读取输入的数据时,遇到回车换行才认为结束


    上一个接收输入的语句是nextInt(),next(),nextDouble()....
    下一个紧接着的接收输入的语句是nextLine()
    这个时间发现第二个输入语句,还没有输入呢,就结束了。

    因为:nextInt(),next(),nextDouble()....它没有读取 回车换行符,数据通道(IO流)中还有回车换行符,
    那么下一个nextLine(),一看通道中有 回车换行符,就以为输入结束了。

结论:
    如果字符串中不会包含空格,那么建议大家使用next()更好。
    如果字符串中想要包含空格,那么nextLine()的前面还有其他输入的话,加一句input.nextLine()把前面的回车换行读取掉。

 */
public class TestNextAndNextLine {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        System.out.print("请输入年龄:");
        int age = input.nextInt();
        System.out.println("age = " + age);
        input.nextLine();//左边不用变量不用接收,目的只是把年龄后面的回车换行符读取掉
                        //当下面name用的是nextLine(),就需要加这句代码,如果下面name用的是next()就不用加这句代码。

        System.out.print("请输入一个姓名:");
        String name = input.nextLine();
        /*
        next()方法:
        张三              name = "张三";
        张 三,认为张后面空格,就是结束了,而不是回车换行结束  name = "张";

        nextLine()方法:
        张三
        张  三
        都可以接收
         */

        System.out.println("name = " + name);

        input.close();
    }
}

标签:java,输入输出,System,next,println,print,input,out
From: https://www.cnblogs.com/abc-begin/p/17538517.html

相关文章

  • 【java】数据类型
    Java的数据类型分为两大类:基本数据类型:包括整数、浮点数、字符、布尔。引用数据类型:包括数组、类、接口、枚举、注解。   自动类型转换(1)当把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围大的变量时。inti='A';//char自动升级为int,其......
  • java日志框架
    发展简图历程:使用logback+slf4j进行日志框架处理,出自一人之手,衔接更好! logback官网手册(英文):https://logback.qos.ch/manual/index.htmllogback中文手册:http://www.logback.cn/博客中文手册:https://blog.csdn.net/qq_26462567/article/details/115757354 ......
  • 【java】源文件和类
    (1)源文件名是否必须与类名一致?public呢?如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为......
  • JavaScript 模块
    JavaScript模块 一般来讲,模块是一个独立的JavaScript文件 模块文件可以包含一个类定义、一组相关的类、一个实用函数库或者是一些待执行的代码 以模块的形式编写代码,任何符合模块编码形式JavaScript代码段,都可当做一个模块JavaScript中未定义支持模块的语言结构,所以......
  • Java扩展Nginx之一:你好,nginx-clojure
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于Nginx扩展以欣宸自己为例,对一个java程序员来说,nginx并不陌生,下图应该是最常见的使用场景了,反向代理:除了反向代理,nginx的模块化机制让nginx具备了更多丰富的特性,例......
  • Java版归并排序 演示代码(带注释)
    Code:importjava.util.Arrays;/***归并排序*/publicclassMergeSort{/***私有化*/privateMergeSort(){}/***归并排序的sort方法*@paramarr待排序数组*@param<E>可比较的元素*/publicstatic<Eex......
  • JAVA_DAY04
    第四天基本数据类型使用:基本数据类型变量名=数据值;inti=1;引用数据类型使用:1.导包:指明要使用类型存在的位置import包名.类名;(权限定名)package包信息的下面,class类型的上面2.定义引用数据类型的变量|引用引用数据类型变量名|引用名=new引......
  • 一个Bug,让我发现了Java界的.AJ(锥)
    目录 一、前言二、满脑子都是骚操作1.遇到问题2.发现问题3.排查问题三、如何正确使用Aspect的.aj类1.安装AspectJ2.AspectJ插件3.添加依赖aspectjrt.jar4.配置AspectJ编译器5.案例测试四、总结五、系列推荐 一、前言话我放这,踩过的坑越多......
  • 一个Bug,让我发现了Java界的.AJ(锥)
    目录一、前言二、满脑子都是骚操作1.遇到问题2.发现问题3.排查问题三、如何正确使用Aspect的.aj类1.安装AspectJ2.AspectJ插件3.添加依赖aspectjrt.jar4.配置AspectJ编译器5.案例测试四、总结五、系列推荐一、前言话我放这,踩过的坑越多头发越少!说来也是奇怪,只要是学......
  • Java中AQS的原理与实现
    目录1:什么是AQS?2:AQS都有那些用途?3:我们如何使用AQS4:AQS的实现原理5:对AQS的设计与实现的一些思考1:什么是AQS​ 随着计算机的算力越来越强大,各种各样的并行编程模型也随即踊跃而来,但当我们要在并行计算中使用共享资源的时候,就需要利用一种手段控制对共享资源的访问和修改来......