1. 程式人生 > 實用技巧 >P2324 [SCOI2005]騎士精神(迭代加深+dfs)

P2324 [SCOI2005]騎士精神(迭代加深+dfs)

今天的內容:

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);
    }
}

明天的打算: 繼續寫實驗題

問題: 如上,已解決