java中split出现空串丢失问题

split一个参数的时候默认会去掉空串,代码如下:

<span style="font-size:14px;">String line =  "a,b,c,d,,,," ;
System.out.println(line.split( ",").length);
</span>

输出结果为 4

如果想保留空串,可以使用split的limit参数指定结果输出个数,当参数为负的时候,即使后面有空的串,也会保留,如下:

<span style="font-size:14px;">String line =  "a,b,c,d,,,," ;
System.out.println(line.split( ",", -1).length);
</span>

输出结果为 8

时间: 2024-10-09 13:41:27

java中split出现空串丢失问题的相关文章

关于java中split的使用

之前在博客中已经叙述过这个问题,但是最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊.题目大概是这样的: Java代码 String s2="this is a test"; String sarray[]=s2.split("/s"); System.out.println("sarray.length="+sarray.length); 这个输出是什么还是编译出错?我想那个split方法中的参数要是"s"

Java中split的用法

简介 Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组. 下面是string.split的用法实例及注意事项: java.lang.string.split  split方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]])  stringObj 必选项.要被分解的 String 对象或文字,该对象不会被split方法修改. separator 可选项.字符串或正则表达式对象

java中split方法的用法

想搞清楚这个问题的原因就是我无法把一个文本里的单词全部给找出来,因为接触C++的时候记得好像regex可以有好多个字符组成,这样就可以通过,.!和空格等标点来分割文本了,但是split的方法所接受的参数只有String类型的regex和int类型的limit,limit用来表示最多可以将字符串分成多少部分.后来通过在网上查找资料才知道原来String类型的regex可以由多部分组成,每个部分分别由 | 隔开,对于可能要出现的* + .等符号,可能需要 \\ 的转义,具体注意事项有以下几个部分:

Java中Split函数的用法技巧

在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧.如执行:"2|33|4".split("|") 出来的结果是: "" 2 | 3 3 | 4 奇怪吧,不过注意看一下API说明还是知道原因的. java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat

正则化—Java中Split函数的用法技巧_(转载修改)

原文地址:http://www.cnblogs.com/liubiqu/archive/2008/08/14/1267867.html java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]]) 参数 stringObj 必选项.要被分解的 String 对象或文字.该对象不会被 split 方法修改. separator 可选项.字符串或 正则表达式对象,它

Java中Split函数的用法技巧[转载]

在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧.如执行:"2|33|4".split("|") 出来的结果是: "" 2 | 3 3 | 4 奇怪吧,不过注意看一下API说明还是知道原因的. java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat

java中split()的用法

今天写个程序用到java里面的split()函数时,发现可以有两个参数,之前用这个函数一直是用的一个参数,今天试了下两个参数的使用,记录一下区别. 下面是菜鸟里关于split()函数的定义 通过这个定义可以发现,第一个参数是split()函数对字符串分割的根据,第二个参数是分割的份数. 第二个参数有两种写法 一种是比较直观的,直接输入要分割的份数a 另一种是-1,输入-1可以理解为无限制匹配,也就是即使两个符号之间没有内容,也会在数组里面存一个空的值.第二个参数输入-1和不输入第二个参数的效果是

java中 .split( )用法

创建main方法: public class StrTest { public static void main(String[] args) { String str = "北京,天津,上海,重庆,河北,河南,云南,辽宁,黑龙江,湖南,安徽,山东,新疆,江苏,浙江,江西,湖北,广西,甘肃,山西,内蒙古,陕西,吉林,福建,贵州,广东,青海,西藏,四川,宁夏,海南"; String[] strs = str.split(","); for (int i=0;i<

java中截取字符串的方式

1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3.getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)