2015-01-16 111 views
-2

我想一個二維整型數組轉換成二維字符數組,我目前收到的內存或初始化值:轉換int類型數組爲char,返回內存指針

[[email protected] 
[[email protected] 
[[email protected] 
[[email protected] 

你如何正確地轉換這些陣列?

代碼如下

public static char[][] findCavities(int[][] map){ 
    char[][] charMap = new char[map.length][map.length]; 

    for(int i = 0; i < map.length; i++){ 

      charMap[i] = map[i].toString().toCharArray(); 

    } 

    return charMap; 
} 
+0

你認爲'map [i] .toString()'是做什麼的,你爲什麼這麼認爲? –

+0

它將整數數組轉換爲可以轉換爲字符數組的字符串。 – Jpm61704

+0

將整數數組轉換爲string_是什麼意思? –

回答

0

Java數組的.toString實施腦死亡,對不起。你可以改爲Arrays.toString(map[i]),它會返回一個看起來像"[1, 2, 3]"的字符串。你可以剝奪括號和空格從它.replaceAll("[\\[\\] ]", ""),但是這真難看:(

如果您使用的是Java 8,你也可以做Stream.of(map[i]).collect(Collectors.joining(""))。這將返回"123"

缺席的是,有各種庫(像Apache公共),你可以用它來解決標準庫中的這個缺陷,或者只是編寫自己的代碼,遍歷數組,然後逐個構建字符串:String s = ""; for(int i: array) s+=i;

但是怎麼樣兩個(或更多)數字?你確實意識到,你的方法將轉換輸入如{11, 1, 11}成一個字符數組{'1', '1', '1', '1', '1'},就像它會爲{111, 11},{1,1,111}等,對不對?在我看來,你在做什麼並不是真的想要做什麼......