打字猴:1.70044283e+09
1700442830
1700442831 //生成匹配器
1700442832
1700442833 Matcher matcher=pattern.matcher(str);
1700442834
1700442835 //记录单词数量
1700442836
1700442837 int wordsCount=0;
1700442838
1700442839 //遍历查找匹配,统计单词数量
1700442840
1700442841 while(matcher.find()){
1700442842
1700442843 wordsCount++;
1700442844
1700442845 }
1700442846
1700442847 System.out.println(str+“单词数:”+wordsCount);
1700442848
1700442849 }
1700442850
1700442851 }
1700442852
1700442853 准不准确,我们来看相同的输入所产生的结果:
1700442854
1700442855 Today is Monday
1700442856
1700442857 Today is Monday单词数:3
1700442858
1700442859 Today is Monday
1700442860
1700442861 Today is Monday单词数:3
1700442862
1700442863 Today is Monday?No!
1700442864
1700442865 Today is Monday?No!单词数:4
1700442866
1700442867 I’m Ok.
1700442868
1700442869 I’m Ok.单词数:3
1700442870
1700442871 每项的输出都是准确的,而且程序也不复杂,先生成一个正则表达式对象,然后使用匹配器进行匹配,之后通过一个while循环统计匹配的数量。需要说明的是,在Java的正则表达式中“\b”表示的是一个单词的边界,它是一个位置界定符,一边为字符或数字,另外一边则非字符或数字,例如“A”这样一个输入就有两个边界,即单词“A”的左右位置,这也就说明了为什么要加上“\w”(它表示的是字符或数字)。
1700442872
1700442873 正则表达式在字符串的查找、替换、剪切、复制、删除等方面有着非凡的作用,特别是面对大量的文本字符需要处理(如需要读取大量的LOG日志)时,使用正则表达式可以大幅地提高开发效率和系统性能,但是正则表达式是一个恶魔(Regular Expressions is evil),它会使程序难以读懂,想想看,写一个包含^、$、\A、\s、\Q、+、?、()、[]、{}等符号的正则表达式,然后告诉你这是一个“这样,这样……”的字符串查找,你是不是要崩溃了?这代码只有上帝才能看懂了!
1700442874
1700442875 注意 正则表达式是恶魔,威力巨大,但难以控制。
1700442876
1700442877
1700442878
1700442879
[ 上一页 ]  [ :1.70044283e+09 ]  [ 下一页 ]