前记
笔者自身对于String转换缺少整理,常常感觉比较混乱T T,特在此规范一下方法~
正文
1.1 String与基本数据类型(int、char、float、…)
-
基本数据类型 → String
- 方法一:变量+“”
- 方法二:调用String.valueOf方法
int number = 1; String s1 = number+""; //方法一:直接加引号 String s2 = String.valueOf(number); //方法二:调用String类中valueOf方法 System.out.println(s1 == s2); // false
为什么s1和s2地址不相同?
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
- 调用String有参构造器,字符数组作为参数
- 调用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)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75096.html