Pra*_*ran -1 java regex string
代码的正则表达式
String inputOne = "cat cat cat cattie cat";
String findStr = "cat";
Pattern p = Pattern.compile("cat");
Matcher m = p.matcher(inputOne);
int countOne = 0;
while (m.find()) {
countOne++;
}
System.out.println("Match number " + countOne);
Run Code Online (Sandbox Code Playgroud)
代码的字符串比较
String inpuTwo = "cat cat cat cattie cat";
int lastIndex = 0;
int count = 0;
while (lastIndex != -1) {
lastIndex = inpuTwo.indexOf("cat", lastIndex);
if (lastIndex != -1) {
count++;
lastIndex += findStr.length();
}
}
System.out.println("Match number " + count);
Run Code Online (Sandbox Code Playgroud)
在两者中都会在输入字符串"cat cat cat cattie cat"中找到子串"cat"的出现.
我的问题是它们之间的区别是什么?
正则表达式优于字符串比较的优势是什么.
哪一个我应该用于申请.正则表达式或字符串比较?
谢谢.
das*_*ght 13
两者完全不同,所以答案很大程度上取决于手头的任务.
如果使用没有元字符的正则表达式,请使用基于字符串的比较:它们更容易理解,并且不会引入不属于它的复杂性(这里是指向深入探讨这一点的文章的链接).
正则表达式的强大功能始于元字符的使用.如果需要定义要捕获的字符串而不是逐个枚举它们,则应使用正则表达式.
| 归档时间: |
|
| 查看次数: |
2664 次 |
| 最近记录: |