当前位置: 首页 > 知识库问答 >
问题:

用java替换e替换all。ReplaceAll不工作[关闭]

蔺昊穹
2023-03-14

编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。

我有这个练习。为什么不使用reappeAll?我有一个错误:字符串索引超出范围:1

 public class e3 {

    public static void main(String[] args) {
        String x="Sessione successiva";
        String nuova=x.replace("i", "!");
        String nuova2=nuova.replace("s", "$");
        String nuova3=nuova2.replace("e", "&");
        System.out.println(nuova3);

            //replaceAll
        String nuovaz=x.replaceAll("i", "!");
        String nuova2z=nuovaz.replaceAll("s", "$");
        String nuova3z=nuova2.replaceAll("e", "&");
        System.out.println(nuova3z);


    }

}

共有2个答案

燕智
2023-03-14

您需要转义正则表达式中使用的字符,请尝试以下操作:

String nuovaz=x.replaceAll("i", "!");
String nuova2z=nuovaz.replaceAll("s", "\\$");
盛建德
2023-03-14

replace eAll适用于正则表达式。在replace All方法中,$是一个保留字符,用于引用作为第一个参数的正则表达式中定义的组,因此您需要转义它。

String nuova2z=nuovaz.replaceAll("s", "\\$");

演示

 类似资料:
  • 我们使用的是 replaceAll 的 String 方法,我们不能在任何字符串中替换 { 。我们的例子: 尝试过: 误差如下: java.util.regex.PatternSyntaxException:发生非法重复 对任何想法持开放态度!也许有解决方法?!

  • 问题内容: 我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么? 问题答案: 更改 至: Java中的字符串被设计为不可变的。 这就是为什么不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。 此外,如果你想简单地替换文字,不需要正则表达式的语法支持使

  • 问题内容: 我有一个字符串,想简单地用string替换其中的所有换行符。 只需写一下就足够了: 我对它的正则表达式部分感到困惑。我换行需要两个斜杠吗?这样够好吗? 问题答案: 不要使用正则表达式! 。您只需要纯文本匹配即可替换。 用于将文字字符串替换为另一个: 请注意,它仍然可以替换 所有 出现的内容,区别是使用正则表达式进行搜索。

  • 给定以下变量 我想使用以下代码将占位符${name}替换为值“joe”(这不起作用) 但是,如果我按照“老式”的方式来做,一切都运行得很完美: )我一定漏了点什么

  • 字符串方法有什么区别? 在下面的示例中,代码给出了< code >相同的输出。在这两种情况下,字符串的< code >所有实例都会被替换。 输出: 这里有一只狗,那里有一只 输出: 这里有一只狗,那里有一只

  • 我正在使用一个具有许多不同库依赖关系的gradle项目,并使用新的清单合并。在我的