Java中String转换方法

前记

笔者自身对于String转换缺少整理,常常感觉比较混乱T T,特在此规范一下方法~

正文

1.1 String与基本数据类型(int、char、float、…)

  • 基本数据类型 → String

    1. 方法一:变量+“”
    2. 方法二:调用String.valueOf方法
    int number = 1;
    String s1 = number+"";  //方法一:直接加引号
    String s2 = String.valueOf(number); //方法二:调用String类中valueOf方法
    System.out.println(s1 == s2); // false
    

    为什么s1和s2地址不相同?

    1. s1方法底层使用StringBuffer.append()实现,最后通过sb.toString()新建一个字符串
    2. s2方法底层调用包装类.toString()方法,仍然是新建了一个字符串
      在这里插入图片描述
      在这里插入图片描述

    s1,s2都是位于堆的新建字符串,地址值不同

  • String → 基本数据类型
    基本数据类型对应包装类.parse包装类

    String s1 = "00101";
    String s2 = "-00101";
    int i1 = Integer.parseInt(s1); //此方法可以自动抹去字符串前面的0
    System.out.println(i1); //打印101
    int i2 = Integer.parseInt(s2); //可以识别“-”、“+”转换成正负数,如果含非法错误会抛出NumberFormatException
    

1.2 String和包装类(Integer、Character、Double)

和基本数据类型用法类似(由于存在自动装箱、拆箱),不过包装类对象可以直接调用toString()方法转换成String


1.3 String和char[]数组

  • char[ ] → String

    1. 调用String有参构造器,字符数组作为参数
    2. 调用String.valueOf方法
    char[] ss = new char[]{'a','c','b'};
    String s1 = new String(ss);
    String s2 = String.valueOf(ss);  //底层还是相当于调用了new String(char[] data)
    

    注意!
    Arrays.toString()方法不能将一个基本数据类型数组变为正确的字符串,它只是起一个打印作用!

    char[] ss = new char[]{'a','c','b'};
    String s1 = new String(ss);
    String s2 = Arrays.toString(ss);
    System.out.println(s1.length()); //3
    System.out.println(s2.length()); //9 ('['、']'各一个字符,','+空格两个字符,每个元素各一个字符)
    

    底层代码
    在这里插入图片描述

  • String → char[ ]
    调用String类中的toCharArray()方法

    String s = "abc";
    char[] ss = s.toCharArray();
    

(其他混乱待编辑 z z z

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值