Jdk的api文档中,描述split方法很详细,但是不仔细研究一下,隐藏的信息是无法显现出来的。
一个实例,分解字符串"boo:and:foo"
在这个例子中,调用split(Stringregex)方法,其实等价调用它的过载方法split(Stringregex,intlimit),limint=0,打印结果:
分析一下,得到结果的原因,刚开始我以为结果是["b",":and:f"],但是事与愿违。在分析结果之前需要理解这样一句话:
"boo:and:foo"
第一次用o分隔取得"b" 和 "o:and:foo"
第二次用o分隔取得"" 和 ":and:foo"
第三次用o分隔取得":and:f"和"o"
第四次用o分隔取得"" 和 "" 因为"o"这个分隔了之后可以获取到左右两个空字符串,即忽略掉后面的空字符串
那么,结果是"b" "" ":and:f"
修改上面例子,代码如下:
运行结果,是这样的:
结合api,分析结果,靠谱一点,一句话:
ok,这次没有去掉末尾的两个空字符串。再看一个实例,将n改为正数1,如下:
结果是“boo:and:foo”,yes,没有分解,why???
因为只执行n-1次 所以1-1 =0 一次都不分隔得到原始字符串。改为其它正数,结果在jdk的api上已经给出:
补充一句:limit=9,在此字符串中与limit=5时是一样的效果。
转载一篇:
Java中Split函数的用法技巧
来源:http://www.cnblogs.com/liubiqu/archive/2008/08/14/1267867.html
在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。如执行:
出来的结果是:
奇怪吧,不过注意看一下API说明还是知道原因的。
所以正常的写法是这样的:
1、如果用“.”作为分隔的话,必须是如下写法:String.split("//."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("//|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"//";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");
分享到:
相关推荐
public static String[] split(String s, String regex) s参数为待拆分字符串, regex参数有两种格式: 单字符的字符串(长度1),功能如下:split(“ab#12#453”, “#”) 返回带5个元素的数组:ab, #, 12, #, 453 ...
String.split()方法使用总结
java中String类的intern、split方法的详细讲解。
主要介绍了Java中String.split()用法小结的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
功率分配因为有时String.split()还不够! 这是一个小型的Typescript库,我出于无奈而从头开始编写了命令行解析器。 它提供了一些实用程序方法来解决一些用例,而这些用例String.split()调用将无法解决。它能做什么?...
java的String[] split 示例
String[] split(String regex) boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 int ...
split string
柯里化的String.prototype.split支持按字符串、正则表达式或函数进行拆分。 npm install string-split --save npm 统计信息 例子 要求 var split = require ( 'string-split' ) ; 完整的应用程序 split ( "." , ...
string[] sArray=s.Split('c') ; foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab deab deab de 第二种方法 我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对...
西门子1200PLC字符串分割函数,采用SCL语言写,通过“外部源文件”添加到项目中,然后对该文件右键--选择“由源生成块”即生成该函数。
安装使用安装:$ npm install --save split-string用法const split = require ( 'split-string' ) ;console . log ( split ( 'a.b.c' ) ) ;//=> ['a', 'b', 'c']// respects escaped charactersconsole . log ( ...
SQLServer数据库中创建字符串截取功能(Split),调用方法: Split(string,str)
主要介绍了String split方法实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
用来学习scala以及spark,用scala写的字符串验证以及字符串分割算子
语法:str.split(str=””,num=string.count(str))[n] 参数说明: str: 表示为分隔符,默认为空格,但是不能为空(”)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素 num:表示分割次数。如果存在参数...
下面小编就为大家带来一篇浅谈java String.split丢失结尾空字符串的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Automatically analyze the parameter type and invoke the 'operator<<' interface to transform it to string. ...template< class T> std::string to_string( const T& RefT, const char* split=" ")
string类的常用方法 string类是C++中一个非常常用的类,它提供了许多方法来操作字符串。以下是一些常用的string类方法: 1. 构造函数: • string(): 创建一个空的字符串。...• split(const char* delim):