abc_begin

导航

【java】输入输出

输出

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

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();
    }
}

posted on 2023-07-09 11:48  LastBattle  阅读(159)  评论(0)    收藏  举报