黑马程序员技术交流社区

标题: 问一个比较奇葩的问题哈 [打印本页]

作者: iWilliam    时间: 2014-6-5 23:29
标题: 问一个比较奇葩的问题哈
从学习正则到现在也有大半年的时间了,突然发现一个长期被忽视的问题,JS中有RegExp对象,AS中也有,Oracle中我猜应该也有,因为regexp_like()是不需要转义的,为什么Java中没有呢?而非要用个字符串还要加倍转义。
以JS为例,我一直比较喜欢这种写法:
//验证纯数字
/^\d+$/.test(str)
因为即使str为null也没问题,代码是健壮的,而且非常简洁优雅
str.match(/^\d+$/)
如果str不幸为null,肯定要报错了,还得写成这样:
null!=str&&str.match(/^\d+$/)


为什么Java不能这样的简洁优雅,而要写成下面的样子:
Matcher m = null;
if((m = Pattern.compile(strRegex, Pattern.CASE_INSENSITIVE).matcher(str)).find()){...}
如此繁琐的设计,不是有违当初Java”简单易用强大“的初衷了么~


不知道有木有大神研究过这个问题。或者有任何想法的欢迎跟帖交流。


作者: iWilliam    时间: 2014-6-7 15:58
额,这都两天了,有木有大神鸟我吖~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2