P2324 [SCOI2005]騎士精神(迭代加深+dfs)
阿新 • • 發佈:2020-08-07
今天的內容:
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(//System.out.println(""+a.toString());此句的輸出同上,也故不考慮這種方法""+Arrays.toString(a));
}
}
//輸出:[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); } }
明天的打算: 繼續寫實驗題
問題: 如上,已解決