今日总结

今天的内容:

Java中当使用Println一段字符串和字符数组时,字符数组会出现乱码(可能是地址)这种现象是println()方法重载的原因.

public class t {
    public static void main(String[] args) {
        char[] a = new char[10];
        StringBuilder strb = new StringBuilder("Hello, World!");
        a = strb.toString().toCharArray();
        System.out.println(""+a);
    }
}
/*
输出:
[C@279f2327
*/

如果使用Arrays.toString方法:

import java.util.Arrays;

public class t {
    public static void main(String[] args) {
        char[] a = new char[10];
        StringBuilder strb = new StringBuilder("Hello,World!");
        a = strb.toString().toCharArray();
        System.out.println(""+Arrays.toString(a));
        // System.out.println(""+a.toString());此句的输出同上,也故不考虑这种方法
    }
}
//输出:[H, e, l, l, o, ,, W, o, r, l, d, !]

解决方法:

1. 使用String类的valueOf()方法:

public class t {
    public static void main(String[] args) {
        char[] a = new char[20];
        StringBuilder strb = new StringBuilder("Hello, World!");
        a = strb.toString().toCharArray();//如果字符串的长度超过了char数组的长度,则会自动增加字符数组长度
        System.out.println(""+String.valueOf(a));
    }
}
//输出:Hello, World!

2. 直接使用String替换char[].

3. 使用char[]去初始化一个String

4.只输出一个字符字符数组(不算是方法)

import java.util.Arrays;

public class t {
    public static void main(String[] args) {
        char[] a = new char[10];
        StringBuilder strb = new StringBuilder("Hello,World!");
        a = strb.toString().toCharArray();
        System.out.println(a);
    }
}

明天的打算: 继续写实验题

问题: 如上,已解决

原文地址:https://www.cnblogs.com/MXming/p/13455114.html