java split(regex)和split(regex, limit)方法的使用技巧

在java字符串方法中有一个非常好用的方法split(),该方法可以把字符串直接分割为数组此方法有两个重载。

一是:split(regex),参数为要分隔的字符串或者正则表达式。

二是:ss.split(regex, limit)。此方法可以的第二个参数一般不太常用,

这两个方法api给的解释是:limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于
0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为
0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

两个方法的区别是split(regex)返回变长的数组,就是可以分割为多少项就返回多长的数组

比如:代码1

	String ss = ",,";
	String sss[] = ss.split(",");
	System.out.println(sss.length);//返回数组长度为0,自动去除尾部为空的字符串

代码2

	String ss = ",,3";
	String sss[] = ss.split(",");
	System.out.println(sss.length);//返回数组长度为3,前面空不自动去除

代码3

	String ss = "1,2,";
	String sss[] = ss.split(",");
	System.out.println(sss.length);//返回数字长度3

ss.split(regex, limit)这个方法返回的数组长度最多为limit

比如:代码1

	String ss = "1,,";
	String sss[] = ss.split(",",3);
	System.out.println(sss.length);//返回数组长度3,不会自动去掉尾部

代码2

	String ss = "1,,5,6";
	String sss[] = ss.split(",",3);
	System.out.println(sss.length);//返回数组长度3,后面的5,6会被合并为一项

代码3

	String ss = "1,";
	String sss[] = ss.split(",",3);
	System.out.println(sss.length);//返回长度为2,后面空不会被去掉

这样是不是两个方法的区别就非常明显了

java split(regex)和split(regex, limit)方法的使用技巧

时间: 2024-10-11 12:08:07

java split(regex)和split(regex, limit)方法的使用技巧的相关文章

Java中String的split()方法的一些需要注意的地方

项目中我用到了字符串的split()方法,为这种方法的方便称赞,可是程序在测试的时候出现的问题折腾了我好久,原来在使用的时候存在着以下几个需要注意的地方. 本来使用split()方法是判断String的数量,结果这么的不靠谱,最后换成了hashset动态添加字符串,然后求hashset.size()的方法得到字符串的个数解决的.... Java代码   public String[] split(String regex, int limit) split函数是用于使用特定的切割符(regex)

我爱java系列---【String.Split方法】

hello 大家好,好久不见,今天 我们要讨论的是java的split方法,或许你很早就知道了,但你真的知道吗? 我们来看看吧. 首先我们来看看我们最常用的split()方法也就是单个参数的方法 public String[] split(String regex) { return split(regex, 0); } 卧槽,这不是重载方法嘛,调用的是另外一个方法,而且还给了个默认值0,然后我们来看看重载的哪个方法 public String[] split(String regex, int

Java报错系列——split

前言 在Java项目中,比如我们经常使用String的split方法对文本进行处理:在Map/Reduce中,我们也需要对HDFS文件读取后对line进行分割,也涉及到split.前几天,本来"好好的"程序,突然在split处报错,后来才知道由于有一条"脏数据"导致split"超出"了预期,才导致了"不可能发生的异常"就这样发生了~不过也说明了一些基础知识真的很重要,于是把String类的split源码阅读了下,发现一个&qu

java.lang.String.replaceAll(String regex, String replacement)使用注意

java.lang.String.replace()方法的参数可以是char类型或者CharSequence类型(String实现了CharSequence接口) java.lang.String.replaceAll(String regex, String replacement)方法的参数是正则表达式和要替换后的字符串,参数regex如果输入例如"+86"或者其他带有特殊字符的字符串则会报错,需要使用特殊符号的时候需要进行转义.

string.split()与re.split()方法区别

re模块的split()方法与字符串的split()方法相似,前者是根据 正则表达式模式 分隔字符串,后者是根据 固定的字符串 分割,因此与后者相比,显著提升了字符分割的能力. 如果分隔符没有使用由特殊符号表示的正则表达式来匹配多个模式,那 re.split()和 string.split()的执行过程是一样的. string.split()与re.split()方法区别,布布扣,bubuko.com

【Java必修课】图说Stream中的skip()和limit()方法及组合使用

来源:厦门SEO 1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和分页等. 2 skip()方法 见名知义,skip()方法用于跳过前面n个元素,然后再返回新的流,如图所示: 来看看代码: List<Integer> result = Stream.of(1, 2, 3, 4, 5, 6) .skip(4) .collect(Collector

split(&quot;\\s+&quot;) 和 split(&quot; +&quot;) 有什么区别?

"hello world, this is Al".split("\\s+") 首先要明白split方法的参数含义: split public String[] split(String regex)根据给定的正则表达式的匹配来拆分此字符串. 然后就要明确正则表达式的含义了: \\s表示 空格,回车,换行等空白符, +号表示一个或多个的意思,所以... 原文地址:https://www.cnblogs.com/fujian-code/p/8920144.html

9大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用9大Java开源中文分词器 2.对比分析9大Java开源中文分词器的分词效果 9大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /**  * 获取文本的所有分词结果, 对比不同分词器结果  * @author 杨尚川  */ public interface WordSegmenter {     /**      * 获取文本的所有分词结果      * @param text 文本      * @retur

Java实现ping功能的三种方法

Java实现ping功能的三种方法 检测设备的运行状态,有的是使用ping的方式来检测的.所以需要使用java来实现ping功能. 为了使用java来实现ping的功能,有人推荐使用java的 Runtime.exec()方法来直接调用系统的Ping命令,也有人完成了纯Java实现Ping的程序,使用的是Java的NIO包(native io, 高效IO包).但是设备检测只是想测试一个远程主机是否可用.所以,可以使用以下三种方式来实现: 1.Jdk1.5的InetAddresss方式 自从Jav