为什么java 根据“ 您所在的位置:网站首页 双斜杠算几个字符 为什么java 根据“

为什么java 根据“

2024-06-26 20:18| 来源: 网络整理| 查看: 265

        在java开发中,常常需要将字符串分隔成字符串数组,再进行操作,比如String str = "aa|bb|cc|||",我们原意是想调用str .split("|")将它根据"|"分隔,预想会分成"aa","bb","cc","","",""6个子串。但实际结果如下:

为什么呢,我们看下jdk原码,String.split的参数是一个正则表达式,而在正则表达式中,| 表示或的意思,它表示匹配左边或右边的内容。而"|"的意思自然就是匹配空了,所以原字符串会被分隔成一个一个的字符。

 

 

所以呢,我们需要将|转义,即 以String bArr[] = str.split("\\|");这种形式分隔,但是问题又出现了,预期6个子串,实际得到了3个

再看原码

public String[] split(String regex) { return split(regex, 0); },它实际调用了两参的split方法,而第二个参数说明如下:

就是说第二个参数默认为0,原字符串后面被切割成空串的部分都会被丢弃,当此参数为正数时,最多切割不超过此正数次,为负数时则全部切割,所以如果我们的字符串如果预想切割成6个子串,可以使用以下写法:

String bArr[] = str.split("\\|", -1);


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有