我有这个输出[4,-3],[-3,-1],[2,-4],[-4,1],这是给我这个输出的代码:
public static String[] arg() throws IOException {
String prova =getString().replaceAll(" 0","] [");
String prova1=prova.replaceFirst("0","[");
String prova2=prova1.replaceAll("%0","]");
String prova3=prova2.replaceAll(" ",",");
String prova4=prova3.replaceAll("],["," ");
System.out.println(prova4);
String[] strArray = getString().split(" ");
//System.out.println(Arrays.toString(strArray));
return strArray;
}我的问题是,我会用这个4,-3,2,-4作为输出,也就是说,用一个空格来代替这个],[。我认为String prova4=prova3.replaceAll("],["," ");应该这样做,但它会产生几个错误。
这是错误:Unclosed character class near index 2 ],[
发布于 2014-05-01 01:03:08
问题是replaceAll()需要的是正则表达式模式,而不是字符串文字。[和]在正则表达式模式中有特殊的含义,它们对字符类进行分组。您可以通过转义[和]来解决问题
String prova4 = prova3.replaceAll("\\],\\[", " ");要获得您想要的输出,您只需替换逗号,而不是括号:
String prova4 = prova3.replaceAll("\\],\\[", "\\] \\[");发布于 2014-05-01 01:01:00
使用以下命令:
String prova4=prova3.replaceAll(","," ");发布于 2014-05-01 01:10:45
来自Doc
有12个具有特殊含义的字符:反斜杠、插入符号、美元符号$、句号或点.、竖线或竖线符号|、问号?、星号或星号*、加号+、左括号(、右括号<代码>D10和左方括号<代码>D11、左花括号<代码>D12,这些特殊字符通常称为<代码>D13
如果要在regex中将这些字符中的任何一个用作文字,则需要使用反斜杠对其进行转义。
因此,您需要尝试使用:\\]
https://stackoverflow.com/questions/23393923
复制相似问题