Java中数组与字符串之间的转换方法(一)

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]

猜你喜欢

转载自blog.csdn.net/weixin_38981172/article/details/78159746
今日推荐