为了账号安全,请及时绑定邮箱和手机立即绑定

将 Java 括号替换为空字符串

将 Java 括号替换为空字符串

qq_笑_17 2022-08-03 11:05:36
为什么第一行不将“(”替换为空字符串,而第二行则用空字符串替换? public static void main(String []args){     String a="This(rab)(bar)";     a=a.replace("\\(",""); //First     String b=a.replaceFirst("\\(","");//Second    System.out.println(a + " "+b); }
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

替换替换第一是有区别的。如果 IDE 显示方法签名,您将看到:

//img1.sycdn.imooc.com//62e9fb070001363810610239.jpg

看看如何接受一个普通的旧而接受一个?replacetargetreplaceFirstregex

"\\("是一个正则表达式,表示“单个开放括号”。 不将传入的字符串视为正则表达式。它只会尝试查找后跟左括号的反斜杠,而字符串中不存在该反斜杠。replace

如果要使用 ,只需使用 。replace"("


查看完整回答
反对 回复 2022-08-03
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

为了工作,你应该写:replace

a=a.replace("(",""); //First

或者如果要传递 :replaceAllregex

a=a.replaceAll("\\(",""); //First

replace接受要替换的字符序列:

public String replace(CharSequence target, CharSequence replacement)

因此,在您的情况下,它会尝试替换3个字符“\(”,而不仅仅是单个字符“(”)。


查看完整回答
反对 回复 2022-08-03
?
智慧大石

TA贡献1946条经验 获得超3个赞

问题是它运行在几个字符中,因此,它将查找的是 和 ,因此不会发生这种情况,引号应仅包含要替换的字符:replace\(


    a = a.replace("(", ""); // First

接下来,我用原始提案和固定提案留下狙击手:


public class Main {


    private static final Main initRun = new Main();


    public static void main(String[] args) {


        String a = "This(rab)(bar)";


        System.out.println("Original");

        initRun.runOriginal(a);


        System.out.println("Fixed");

        initRun.runFixed(a);


        // Output

        // Original

        // This(rab)(bar)

        // Thisrab)(bar)

        // Fixed

        // Thisrab)bar)

        // Thisrab)bar)

    }


    /**

     * Execute the original proposal

     *

     * @param a String for replace

     */

    void runOriginal(String a) {

        a = a.replace("\\(", ""); // First

        String b = a.replaceFirst("\\(", "");// Second

        System.out.println(a + "\n" + b);

    }


    /**

     * Execute the fixed proposal

     *

     * @param a String for replace

     */

    void runFixed(String a) {


        a = a.replace("(", ""); // First

        String b = a.replaceFirst("\\(", "");// Second

        System.out.println(a + "\n" + b);

    }

}


查看完整回答
反对 回复 2022-08-03
  • 3 回答
  • 0 关注
  • 496 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号