2017-01-05 110 views
1

我正在打印一個數組,但我只想顯示數字。我想從String中刪除括號和逗號(只留下數字)。到目前爲止,我已經能夠刪除逗號,但我正在尋找一種方法爲replaceAll方法添加更多參數。替換字符串中的多個字符

如何刪除括號和逗號?

cubeToString = Arrays.deepToString(cube); 
System.out.println(cubeToString); 
String cleanLine = ""; 
cleanLine = cubeToString.replaceAll(", ", ""); //I want to put all braces in this statement too 
System.out.println(cleanLine); 

輸出是:

[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5]] 
[[0000][1111][2222][3333][4444][5555]] 
+3

'cubeToString.replaceAll(「\\ d 「,」「)' – 4castle

回答

4

您可以使用特殊字符[]以形成圖案,然後\\逃脫[](從輸入)一樣,

cleanLine = cubeToString.replaceAll("[\\[\\]\\s,]", ""); 

全部替換n一個數字。像,

cleanLine = cubeToString.replaceAll("\\D", ""); 
+0

謝謝它的工作:) – cuber

+0

在一邊不是@Elliot Frisch如果我想改變字符串中的數字,比如將0改爲1,將3改爲0,該怎麼辦?他們不是特殊角色,我正在改變多個角色。 – cuber

+0

我可能會使用'Map '來包含來自/到'String'的映射,以及一個帶有簡單循環的'StringBuilder'。 –

0

你正在做的是像使用腳本語言一樣有效地使用Java。 在這種情況下,它恰好運行良好,因爲您的數組只包含數字,您不必擔心可能會出現在數組元素中的轉義字符。

但是它仍然沒有效率或類似於Java的轉換字符串多次,其中一個正則表達式(replaceAll),以達到您的最終結果。

一個更好和更有效的方法是直接建立,你需要不帶任何逗號或方括號中的字符串:

public static void main(String[] args) throws Exception { 
    int[][] cube = { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }, { 4, 4, 4, 4 }, 
      { 5, 5, 5, 5 } }; 

    StringBuilder builder = new StringBuilder(); 
    for (int[] r : cube) { 
     for (int c : r) { 
      builder.append(c); 
     } 
    } 
    String cleanLine = builder.toString(); 
    System.out.println(cleanLine); 
} 

輸出:

000011112222333344445555