关于split遇到的一个奇葩问题

split用于分割字符串得到字串数组这是基本用法。如下:

def str= "3 2"
if(str.contains(" ")){
    println str.split(‘ ‘)[0] // 3
}

可是换一种情况:

def str= "3+2"
if(str.contains("+")){
    println str.split(‘+‘)[0] //报错
}

 

却报错了!

百度查清楚原因发现:

出现+、*、|、/ 等正则中使用的特殊字符。split函数把"+"当作正则处理了。

只需要加[] 即可

def str= "3+2"
if(str.contains("+")){
    println str.split(‘[+]‘)[0]  //可以正常输出
}

时间: 2024-12-27 08:36:25

关于split遇到的一个奇葩问题的相关文章

一个奇葩的悖论

前言 说到集合就不得不提到康拓,虽说集合论对现代数学有着非常大的影响,但总是对他的无限集的理论有一些疑问(不知道是不是叫无限集,反正我是这么叫).最简单的例子就是一个平面上点的数量与一条直线上点的数量一样多(这是人第一次听到都会觉得不对吧).该问题普遍的解释一般是说这两者的元素之间有一一对应的关系(好比是你有啥我就有啥).所以我就针对这个问题发表来一个奇葩的悖论. 主干 首先我们来看一下圆锥与圆柱.小学里就知道圆锥的体积是圆柱的1/3,可换一个角度想想,如果都把圆锥与圆柱沿水平方向切成无限份,那

一个奇葩问题,jQuery的chzn-select查询失效

之前遇到了一个奇葩问题,jQuery的chzn-select查询失效.本来用jQuery的chosen,挺好用的,这个select可以自动查询匹配,比select2用得更方便. 可是,有的地方用得却无法查询,有的地方又可以,查找了好久还是找不出来原因.用了firebug,又查代码,费了很大周折,最后还是发现了问题了. 原来的代码是这样的 <td> <select class="chzn-select" id="industryId" name=&q

[nginx]nginx的一个奇葩问题 500 Internal Server Error phpstudy2018

[nginx]nginx的一个奇葩问题 500 Internal Server Error 解决方案 nginx 一直报500 Internal Server Error 错误,配置是通过phpstudy2018站点域名管理生成的. 默认是  root   "D:\php\phpstudy\PHPTutorial\WWW\foxphp"; 修改成这样就好了 root   "D:\\php\\phpstudy\\PHPTutorial\\WWW\\foxphp"; 查

关于创建URL对象的一个奇葩报错

//说明下下面这个代码运行通过的没问题 public class TestUrl {    public static void main(String[] args) {        String urlStr="http://www.autohome.com.cn/2075/";                try {            URL url = new URL(urlStr);        } catch (MalformedURLException e) {

cocos2d的一个奇葩错误

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one 运行时检查失败#0 - ESP的值在函数调用中未正确保存. 这通常是通过调用一个声明的函数的结果 解决方案:  Run-Time Check Failure #0 - The valu

Java 字符串Split方法的一个坑

java字符串的split,只传一个参数,后面空白的字符串会被忽略: public static void main(String[] args) { String str = "ab|c||"; String [] split = str.split("\\|"); System.out.println(Arrays.toString(split)); } 输出结果是[ab, c]. 解决方法是split第二个参数传一个负数,例如 public static vo

java string遇到的一个奇葩bug

String abc = "1"; HashMap<String, String> hMap = new HashMap<String, String>(); hMap.put("1", "1"); if ("1".equals(hMap.get("1"))) { System.out.println("1".equals(hMap.get("1&quo

PL/SQL Developer遇到一个奇葩无效标识符问题随记

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/49897839 前段时间前,在尝试使用PL/SQL Developer抽取数据时,执行脚本时,遇到了一个ora-00936报错. 查询报错ora-00936 ORA-00936: missing expression tips Cause: A required part

一个奇葩常见的问题 nginx 403 forbidden错误

今天安装dedecms,配置Nginx,然后生成一键生成静态页面,然后就没有然后了,所有栏目页面都显示nginx 403 forbidden. 一般来说nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看.403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误.哪些场景需要返回403状态码的场景?1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问.2.访问禁止目录浏览的目录,例:设置autoind