我正在打印一个数组,但我只想显示数字。我想从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]]
答案 0 :(得分:4)
您可以使用特殊字符[
和]
来形成图案,然后使用\\
来转义[
和]
(来自您的输入) )喜欢,
cleanLine = cubeToString.replaceAll("[\\[\\]\\s,]", "");
或替换所有内容而非数字。像,
cleanLine = cubeToString.replaceAll("\\D", "");
答案 1 :(得分: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