Java——不同数据类型的输入输出方式与转化方式

======================================================================================

1.Java中八种数据类型输入输出方式

(1)输入方式 创建Scanner对象

  • Scanner:一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
  • 借助此类,可以允许用户从System.in读取一个数据传给创建的该数据类型;
  • Scanner分隔符模式将输入传给令牌,默认情况下匹配空格。
    然后可以使用各种next()方法将得到的令牌转换成不同类型的值。
public class CinPrint {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        byte b=sc.nextByte();
        short s=sc.nextShort();
        int i=sc.nextInt();
        long l=sc.nextLong();
        float f=sc.nextFloat();
        double d=sc.nextDouble();
        char c=sc.next().charAt(0);
        boolean n=sc.nextBoolean();
        String s1=sc.next();  //读取输入一个字符串(不含空格)
        String s2=sc.nextLine(); //读取输入一行字符串(可以含空字符)
        sc.close();  //结束读取,关闭扫描
        System.out.println(b);
        System.out.println(s);
        System.out.println(i);
        System.out.println(f);
        System.out.println(d);
        System.out.println(c);
        System.out.println(n);
        System.out.println(s1);
        System.out.println(s2); 
    }
}
  • // 一次可从键盘多个输入,并正确输出,因为扫描一旦开始,截至close()关闭扫描,可以一直读取多个数据,默认以空格分隔;
    在这里插入图片描述

// 对于s1、s2的区别 ,如果输入的字符串中含有空字符,最终读取的只有空字符前的字符串给s1;而s2 的nextLine()方法可以读取包括空字符的字符串;
在这里插入图片描述
在这里插入图片描述

  • //扫描仪也可以从自定义内容输入,以别的分隔符分割,通过不同的next()方法读取,并输出:
public class CinPrint {
    public static void main(String[] args) {
        String input = "1 fish 2 fish red fish blue fish";
        Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
        System.out.println(s.nextInt());
        System.out.println(s.nextInt());
        System.out.println(s.next());
        System.out.println(s.next());
        s.close();
    }
}

// 上述代码 以空格finsh空格作为分隔符,输出结果如下:
在这里插入图片描述

  • 详细信息、更多方法可在Java帮助文档中查看
    在这里插入图片描述

(2)输出的不同格式

* 格式化输出方式:System.out.printf("%?",变量名)

标识符含义
%c输出单个字符
%d十进制整数
%f十进制浮点数
%s字符串
%bboolean类型
%o八进制
%x十六进制
%%仅输出百分号%
        int a=12;
        double d=2.12324;
        System.out.printf("%x\n",a);
        System.out.printf("%f\t",(float)a);
        System.out.printf("%.02f",d); //对浮点型数据 使其保留两位小数输出

在这里插入图片描述

* 不换行输出方式:System.out.print(变量名)

  • // 虽然该输出方式不会自动换行,但可以通过 +"\n" 进行换行;
  • //也可以通过 +“字符/字符串” 混合输出结果;
    在这里插入图片描述

* 自动换行输出方式:System.out.println(变量名)

  • // 该输出方法同样可以混合输出,可以实现数据加法+(参与运算,注意整形提升、强制类型转化);还可以连接多个字符串或字符或数字;
    在这里插入图片描述

2.在线编程用到的输入结束的判断 hasnext-()

  • Java帮助文档中有很多针对不同类型的方法判断输入的结束;
    在这里插入图片描述
    例:
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextInt()){
            //如果没有扫描到下一个输入的int值 返回false;
            int num=sc.nextInt();
            String ss=String.valueOf(num);
            System.out.println(ss);
        }
        while(sc.hasNextLine()){
            String str=sc.nextLine();
            int n=Integer.parseInt(str);
            System.out.println(n);
        }

在这里插入图片描述

3.整数与浮点数(强制类型转化)

** // 直接赋值:取值范围小的数据类型数据 可以赋值给 取值范围更大的数据类型数据;
** // 强制类型转化:取值范围大的数据类型数据(数值需<被赋值的数据类型的取值范围)就可以进行强制类型转化为 更小类型的数据;

        byte a=1;
        short b=2;
        int d=4;
        long l=8;
        d=a;
        b=a;
        l=a;
        d=b;
        a=(byte)b; //强制类型转化
        // b=d;  //错误的;会造成数据丢失;必须加 (类型名)进行强制类型转化
        b=(short)d; //强制类型转化
        
        float e=1.1f;
        double f=2.2;
        boolean bool=true;
        e=b;
        f=a;
        d=f;
        d=(int)f;

在这里插入图片描述
在这里插入图片描述

4.字符、整型、字符串类型转化方式

(1)int 转化为 char 类型

        int a=2;
        char c1=(char)a;
        char c2 = (char) (a + '0');
        char c3 = String.valueOf(a).toCharArray()[0];
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
  • // 不可以直接加括号强制类型转化;

在这里插入图片描述

(2)char 转化为 int 类型

       char c = '1';
        // 不能直接转换
        int a1 = c;
        int a2 = c - '0';
        int a3 = Integer.parseInt(String.valueOf(c));
        System.out.println(c);
        System.out.println(a1);
        System.out.println(a2);
        System.out.println(a3);

// 还是不能强转;字符串有自己的数字字符对照编码,对于我们是未知的;
在这里插入图片描述

(3)int 转化为 String 类型

        int a=33;
        String s1 = a+"";
        String s2 = String.valueOf(a);
        String s3 = Integer.toString(a);
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);

在这里插入图片描述

(4)String 转化为 int 类型

        String s="12";
        int a1=Integer.parseInt(s);
        System.out.println(a1);

在这里插入图片描述

(5)String 转化为 char 类型

        String s="sos";
        char[] c=s.toCharArray();
        char c1 = s.charAt(0);
        char c2 = s.charAt(1);
        char c3 = s.charAt(2);
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);

在这里插入图片描述

(6)char 转化为 String 类型

        char[] ch= {'a','b','c'};
        String s = String.valueOf(ch);
        System.out.println(s);

在这里插入图片描述

  • 20
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值