Java中String的替换函数replace()、replaceAll()、replaceFirst()的区别 && 1678. 设计 Goal 解析器

1678. 设计 Goal 解析器

Java中String的替换函数replace()、replaceAll()、replaceFirst()的区别 && 1678. 设计 Goal 解析器

 Java中String的替换函数replace()、replaceAll()、replaceFirst()的区别 && 1678. 设计 Goal 解析器

 --解决方法--

“无脑”调用函数解决

public String interpret(String command) {
        
        return command.replace("()","o").replace("(al)","al");

    }

 

--写在后面的话--

Java String类下面有3个替换函数:replace() 、replaceAll() 、replaceFirst()

        String str = "my.test.txt";
        System.out.println(str.replace(".", "#"));
        System.out.println(str.replaceAll(".", "#"));
        System.out.println(str.replaceFirst(".", "#"));
结果:
my#test#txt
###########
#y.test.txt

 原因:

 replaceAll() 、replaceFirst()支持正则表达式,而  “.”是正则表达式的元字符,匹配除换行符以外的任意字符

   replace()不支持正则表达式

  很多人可能会误解replace是替换单个,而replaceAll是替换全部,其实这是错的(我以前也是这么想的- -)。

  replace只是没有用到正则表达式,但仍会替换所有匹配的字符串。

那么不想用正则表达式去替换第一个字符串肿么办?”  其实也很简单,只要将元字符串转义就行了。 

1 s.replaceFirst("\\.", "#")

运行结果: 

my#test.txt

  

  

 

参考内容:

https://www.cnblogs.com/jun9207/p/5191857.html

  

上一篇:一行代码搞定数字格式化输出 (java正则)


下一篇:【JAVA】replace,replaceAll,replaceFirst