字元陣列在輸出時入不加Arrays.toString(),會"自動合併陣列的字元",這是只有字元陣列會出現的現象嗎? 合併後的資料型態是String嗎?
不加Arrays.toString()
class Mystring{
public char[] num ={'a','b'};
}
public class ReturnObject{
public static void main(String args[]){
Mystring A_string = new Mystring();
System.out.println(A_string.num); //ab
}
}
加Arrays.toString()
class Mystring{
public char[] num ={'a','b'};
}
public class ReturnObject{
public static void main(String args[]){
Mystring A_string = new Mystring();
System.out.println(Arrays.toString(A_string.num)); //[a,b]
}
}
字元陣列在輸出時入不加Arrays.toString(),會"自動合併陣列的字元",這是只有字元陣列會出現的現象嗎? 合併後的資料型態是String嗎?
只是「連續顯示字元」
A_string.num仍然是 char[]沒有合併
成 String
請看這篇說明
至於Arrays.toString() 只是個 java 語言提供的方便輸出 Array 內容(支援各種資料型態)的函式
合用就用
如果不合用你就自己 override
Arrays.toString 的範例如下
import java.util.Arrays;
public class HelloWorld{
public static void main(String args[]){
int arr1[] = {10, 20, 30};
char arr2[] = {'A','B','C'};
String arr3[] = {"Good", "Job", "Tried."};
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.toString(arr3));
Person[] aryname = new Person[3];
Person objname = new Person();
Arrays.fill(aryname, objname);
System.out.println(Arrays.toString(aryname));
}
}
class Person {
public String Name = "John Wick";
public int Age = 22;
public int yearkill[] = {1000,2000,3000};
}