首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >replaceAll - Java

replaceAll - Java
EN

Stack Overflow用户
提问于 2014-05-01 00:57:17
回答 3查看 1.1K关注 0票数 0

我有这个输出[4,-3],[-3,-1],[2,-4],[-4,1],这是给我这个输出的代码:

代码语言:javascript
复制
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 ],[

EN

回答 3

Stack Overflow用户

发布于 2014-05-01 01:03:08

问题是replaceAll()需要的是正则表达式模式,而不是字符串文字。[]在正则表达式模式中有特殊的含义,它们对字符类进行分组。您可以通过转义[]来解决问题

代码语言:javascript
复制
String prova4 = prova3.replaceAll("\\],\\[", " ");

要获得您想要的输出,您只需替换逗号,而不是括号:

代码语言:javascript
复制
String prova4 = prova3.replaceAll("\\],\\[", "\\] \\[");
票数 2
EN

Stack Overflow用户

发布于 2014-05-01 01:01:00

使用以下命令:

代码语言:javascript
复制
String prova4=prova3.replaceAll(","," ");
票数 1
EN

Stack Overflow用户

发布于 2014-05-01 01:10:45

来自Doc

有12个具有特殊含义的字符:反斜杠、插入符号、美元符号$、句号或点.、竖线或竖线符号|、问号?、星号或星号*、加号+、左括号(、右括号<代码>D10和左方括号<代码>D11、左花括号<代码>D12,这些特殊字符通常称为<代码>D13

如果要在regex中将这些字符中的任何一个用作文字,则需要使用反斜杠对其进行转义。

因此,您需要尝试使用:\\]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23393923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档