手写代码注意点 -- 类型转换

char, int, long, boolean, float, double --> String

Correct syntax: String.valueOf(char)

Wrong syntax: char.toString()

Because these primitive are not inherit from Object, so they do not have toString() function.

char[] --> String

当char[] 要转化为 string, 不能直接用 char[].toString() !!! 数组类中并没有对toString()方法重写(override),仅仅是重载(overload)为类的静态方法(参见java.util.Arrays)。所以,数组直接使用toString()的结果也是输出内存地址[类型@哈希值] (例如: "[C@232204a1")。

数组转为字符串应写成:

1-带格式的string,输出的是[a, b, c]:java.util.Arrays.toString(arr);

1 int[] arr = { 1, 2, 3, 4, 5 }; 
2 String arrString = Arrays.toString(arr); 
3 
4 // 直接输出,为内存地址
5 System.out.println(arr); 
6 // [I@139a55
7 
8 System.out.println(arrString );
9 // [1, 2, 3, 4, 5]

2 不带格式的string,输出的是abc:

方法1:直接在构造String时转换。

char[] data = {'a', 'b', 'c'};
String str = new String(data);

方法2:调用String类的方法转换。

String.valueOf(char[] ch)

String --> char[]

String.toCharArray()

StringBuilder, StringBuffer --> char[]

StringBuilder & StringBuffer 不能直接.toCharArray(), 必须这样转换:stringBuilder.toString().toCharArray();

原文地址:https://www.cnblogs.com/frankcui/p/11115842.html