前记
笔者自身对于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方法底层使用StringBuffer.append()实现,最后通过sb.toString()新建一个字符串
- 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
- 调用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)
这篇博客详细介绍了在Java中如何进行String与基本数据类型(如int、char)、包装类以及char数组之间的转换。讨论了String与基本数据类型的转换方法,包括直接加引号和使用`String.valueOf()`,并解释了为何两种方法生成的字符串对象地址不同。此外,还阐述了String到基本数据类型的转换,如`Integer.parseInt()`用于将字符串转为整数。同时,提到了String与包装类之间的转换,以及String与char数组之间的转换,包括`toCharArray()`和构造器的使用。
5785

被折叠的 条评论
为什么被折叠?



