今天做leetcode题目简化路径用到了split函数,本以为调用一下就能以"/"分割,但是结果一直不满意,debug之后才发现有很多空字符串。

String str = "/a//bc/d//././/..";
String [] strArray = str.split("/");
for(int i = 0; i < strArray.length; i++) {System.out.println( i + strArray[i]);
}

结果如下:

0
1a
2
3b
4
5
6
7c
8d
9
10.
11.
12
13..

其中多了很多空字符串第0,2行等等。

其实也不难看出在"/a//bc/d//././/.."它是以开头空为开始,"_/a/_/b/_/_/_/c/d/_/././_/.."(_代表空格) 所以之后再使用的时候要判断分割后的字符串长度是不是0从而判断是不是空。

坑2:用"." "$" "|" "*"等分隔符时要加"//" 变成"//."这样的形式。

如图"1.01.02"分割后数组长度为0 分割失败。

拓展:limit参数的用法

public String[] split(String regex)//默认为0public String[] split(String regex, int limit)

该参数用于控制匹配的次数. public String[] split(String regex)为limit为0的情况.

limit > 0 : 最多匹配limit-1次,得到一个长度为limit的数组. String[limit-1]为余下未匹配的字符串

limit = 0 : 尽可能的多匹配, 且长度无限制, 但结尾空字符串将被丢弃

limit < 0 : 尽可能的多匹配, 且长度无限制。

待补充,split函数的原理即源码是如何基于正则表达式的以及转义字符串如何使用。

docker中 system limit for_java中的split函数的坑相关推荐

  1. docker中 system limit for_springboot中redis的缓存穿透问题

    什么是缓存穿透问题?? 我们使用redis是为了减少数据库的压力,让尽量多的请求去承压能力比较大的redis,而不是数据库.但是高并发条件下,可能会在redis还没有缓存的时候,大量的请求同时进入,导 ...

  2. MATLAB中split函数使用

    目录 语法 说明 示例 在空白处拆分字符串并重新联接 在分隔符处拆分字符串并用新的分隔符联接 使用模式作为分隔符拆分字符串 在多个分隔符处拆分字符串 沿指定维度定向字符串 拆分字符串并返回分隔符 sp ...

  3. Java中split函数的用法及使用示例

    Java中split函数的用法及使用示例 2010-05-04 10:21 日志原文:http://lhgc.blog.sohu.com/80444801.html java.lang.string. ...

  4. Docker学习笔记(更新中)

    Docker常用命令 帮助命令 在命令之后加上 --help 即可查看帮助 docker version # 显示Docker版本信息 docker info # 显示Docker系统信息,包括镜像和 ...

  5. Java 中String的split函数简介

    在字符串处理过程中,我们经常遇到要把一个字符串转出字符数组,使用的split函数,下面就该函数进行简单说明. split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回. string ...

  6. java双斜线转义_转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则...

    转义字符将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\& ...

  7. Java中Split函数的用法技巧

    2019独角兽企业重金招聘Python工程师标准>>> 在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些 ...

  8. C#中Split函数的使用

    Split函数 描述 :返回一个下标从零开始的一维数组,它包含指定数目的子字符串.  语法 :Split(expression[,   delimiter[,   count[,   compare] ...

  9. Java中的split函数

    Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回: String str="1234@abc"; String[] a = s ...

  10. android java split_Java中的split函数的用法

    Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回: 例如: String str="1234@abc"; String[] a ...

最新文章

  1. 计算机的编译原理pdf,计算机编程基础--编译原理.pdf
  2. 2020-08-20如何获取AWS的Access Key ID 和 Secret Access Key (Unable to find credentials)
  3. Hadoop五个进程的作用和联系
  4. php在页面循环输出标签,自定义页面循环
  5. android如何自定义viewpager,Android自定义ViewPager实现个性化的图片切换效果
  6. checking size of char… configure: error: cannot compute sizeof (char) 解决方法
  7. html-iframe内联框架
  8. System.UriFormatException: Invalid URI 解决方法
  9. 吴恩达神经网络和深度学习-学习笔记-6-训练集、验证集和测试集 + 偏差bias和方差variance
  10. SAP HR人力资源管理
  11. 设计网站中的精品,你可能需要它--第二期
  12. Unity Opencv摄像头实时美颜(二)
  13. mac 卸载java 9
  14. 电脑搜索不到打印机应该怎么办?
  15. 英国脱欧对GDPR的实施有影响吗?
  16. vim-airline use patched fonts
  17. 0030-用OpenCV的inpaint函数做图像的污点修复
  18. [实用资料系列]注册表技术大全「二辛苦收集的注册表大全」
  19. 计算机组成原理语言方框图,计算机组成原理实验报告3 语言方框图
  20. 北方工业大学计算机考研资料汇总

热门文章

  1. LINUX系统一一常用命令
  2. Hadoop HBase概念学习系列之什么是HBase? (一)
  3. 如何使用高大上的方法调参数
  4. nfs--samba
  5. 不惑网络人细数应用交付发展史(二)- 一枝独大
  6. linux 启动作业,[转载] 随身带着走的作业系统 ~安装Linux作业系统于随身碟~
  7. php显示有关html函数,php中与html标签相关的函数有哪些
  8. logstash nginx error access 日志处理
  9. PHP 编写接口并在header中进行简单的校验
  10. $.ajax()常用属性