String类split方法

split方法是一个最常用的拆分字符串的方法。如果没有深入了解的话,就会采坑。

笔者前几天在项目中就遇到了这个坑,一直以为带一个分隔符的字符串,无论左右两侧是否有字符,都会解析为一个包含2个元素的数组。因此坑了自己一把!

[java]  view plain  copy
  1. 笔者实力坑:查询时将两个字段使用逗号分隔拼接在了一起,然后在后台进行处理。当时考虑到了以下的情况,但之前一直以为拆分结果是2个数组元素  
  2. String  name = ",";    
  3. String[] arr = name.split(",");  
  4. 这样解析后,笔者就直接通过arr[o],arr[1]方式直接取了。  

下面我们来看看split吧!

[java]  view plain  copy
  1. package spilt方法;  
  2.   
  3. public class Test {  
  4.   
  5.     public static void main(String[] args) {  
  6.         //分隔符-两侧均有字符时  
  7.         String name = "测试1,测试11";  
  8.         String[] arr = name.split(",");  
  9.         System.out.println("测试1.length="+arr.length);  
  10.           
  11.         //只有左侧有字符时  
  12.         String name2 = "测试2,";  
  13.         String[] arr2 = name2.split(",");  
  14.         System.out.println("测试2.length="+arr2.length);  
  15.           
  16.         //只有右侧有字符时  
  17.         String name3 = ",测试11";  
  18.         String[] arr3 = name3.split(",");  
  19.         System.out.println("测试3.length="+arr3.length);  
  20.           
  21.         //两侧均无字符时  
  22.         String name4 = ",";  
  23.         String[] arr4 = name4.split(",");  
  24.         System.out.println("测试4.length="+arr4.length);  
  25.         /** 
  26.          * 结论:split方法分隔符两侧均有字符时,则会解析得到2个数组元素; 
  27.          *            若只有左侧有字符,则只会解析得到1个数组元素(左侧的字符); 
  28.          *            若只有右侧有字符,则会解析得到2个数组元素(左侧和右侧); 
  29.          *            若两侧均无字符时,则解析得到 0 个数组元素 
  30.          */  
  31.           
  32.         //分隔符--两侧为一个或两个空格时  
  33.         //同上测试--结论:空格等同于字符效果  
  34.         String name5 = ", ";  
  35.         String[] arr5 = name5.split(",");  
  36.         System.out.println("测试5.length="+arr5.length);  
  37.     }  
  38. }  


结论:split方法分隔符两侧均有字符时,则会解析得到2个数组元素;
*          若只有左侧有字符,则只会解析得到1个数组元素(左侧的字符);
*          若只有右侧有字符,则会解析得到2个数组元素(左侧和右侧);

*          若两侧均无字符时,则解析得到0 个数组元素

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值