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