Java中数组与字符串之间的转换方法(一)
Array2String
- a) 数组遍历,将没一个数组元素与字符串拼接
//数组遍历,将没一个Array元素与String拼接
public class Array2String {
public static void main(String[] args) {
int[] arr = {1,2,3};
String s = demomethod1(arr);
String s1 = demomethod2(arr);
System.out.println(s);
System.out.println(s1);
}
/** #1 Method
* 定义一个String对象,遍历Array中元素,依次用 “+” 号运算符与其拼接,最终返回一个[ , , ]形式的String
* 任意数据类型变量用 “+” 号运算符与String运算,都会返回一个新的String
* 缺点:用 “+” 号运算符与String运算,每运算一次都创建一个新的String,之前的都会变成垃圾,浪费内存
*/
public static String demomethod1(int[] arr) {
String s = "[";
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
s = s + arr[i] + "]";
}else
s = s + arr[i] + ", ";
}
return s.toString();
}
/** #2 Method
* 创建一个StringBuffer对象,利用StringBuffer中的append()方法拼接,然后转换成String并返回
* 优点:用方法2只创建一个StringBuffer对象就可以了
*/
public static String demomethod2(int[] arr) {
StringBuffer sb = new StringBuffer();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
sb = sb.append(arr[i]).append("]");
}else {
sb = sb.append(arr[i]).append(", ");
}
}
return sb.toString();
}
}
- b)利用Java.util.Arrays类下override Object类的toString方法
public static String toString(int[] a)
其底层方法其实就是利用StringBuffer实现的
// # 源码
public static String toString(long[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
} ```
// # 示例
int[] arr = {1,2,3};
System.out.println(Arrays.toString(arr));
// # 以上方法输出结果均为
[1, 2, 3]