java split方法使用注意事项
来源:互联网 发布:速达软件好吗? 编辑:程序博客网 时间:2024/05/31 04:04
在java.lang包中有String.split()方法,返回是一个数组。
使用时要注意参数如果是特殊符号的话要进行转义。
如果用“.”作为分隔的话,必须是如下写法:
String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
如果用“|”作为分隔的话,必须是如下写法:
String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
2、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用
String.split("and|or");
3、public String[] split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。
此方法返回的数组包含此字符串的每个子字符串,这些子字符串由另一个匹配给定的表达式的子字符串终止或由字符串结束来终止。数组中
的子字符串按它们在此字符串中的顺序排列。如果表达式不匹配输入的任何部分,则结果数组只具有一个元素,即此字符串。
4、public string[] split(string regex)
这里的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式,
他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
(1) 用竖线 | 分隔字符串,你将得不到预期的结果
String[] aa= "aaa|bbb|ccc".split("|");//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果for (int i= 0 ; i <aa.length; i++ ) { System.out.println("--"+aa);}
(2)用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
String[] aa= "aaa*bbb*ccc".split("*");//String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果for(int i =0 ; i <aa.length ; i++ ){ System.out.println("--"+aa);}
(3)显然,+ * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的结果。
(4) "|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。
(5)还有如果想在串中使用""字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果:
String[] aa = "aaa\\bbb\\bccc".split(\\\\);
(6) 还有就是点号".",也要首先转义才能得到正确的结果。
第一种方法:
string s="abcdeabcdeabcde";string[] sArray=s.Split('c'); foreach(string iin sArray)Console.WriteLine(i.ToString());
输出下面的结果:ab
deab
deab
de
第二种方法:
我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字符进行分割:
string s="abcdeabcdeabcde";string[] sArray1=s.Split(newchar[3]{'c','d','e'}); foreach(string iin sArray1)Console.WriteLine(i.ToString());
可以输出下面的结果:ab
ab
ab
第三种方法:
除了以上的这两种方法以外,第三种方法是使用正则表达式。新建一个控制台项目。
然后先添加 using System.Text.RegularExpressions;
usingSystem.Text.RegularExpressionsstring content=agcsmallmacsmallgggsmallytx;string[] resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)foreach(string iin resultString)Console.WriteLine(i.ToString());
输出下面的结果:agc
mac
ggg
ytx
第四种方法:
string str1="我*****是*****一*****个*****教*****师";string[] str2; str1=str1.Replace("*****","*"); str2=str1.Split(’*‘); foreach(string iin str2) Console.WriteLine(i.ToString());
第五种方法:
string str1=”我**是*****一*****个*****教*****师“;
我希望显示的结果为:我是一个教师。 我如果采用上面的第四种方法来做就会产生下面的错误:我 是一个教师。中间有空格输出,所以输出结果并不是希望的结果,这就又回到了正则表达式了,这时可以采用下面的第五种方法:
string str1=‘我**是*****一*****个*****教*****师“;string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+);foreach(string iin str2) Console.WriteLine(i.ToString());
这里通过[*]+ 巧妙的完成了我们的目标- java split方法使用注意事项
- Java String.split()方法注意事项
- java的split使用注意事项
- JAVA中String对象split方法注意事项
- JAVA中的split的使用注意事项
- split()使用注意事项
- java split(".");注意事项
- java split(".");注意事项
- java split() 注意事项
- Java Split注意事项
- Java中String类的split()方法的注意事项
- java 分隔符函数split的使用注意事项
- String.split()函数使用注意事项
- java split分割字符串注意事项
- Java split用法及注意事项
- Java中字符串split方法使用简介
- Java String类的split方法使用
- JAVA中split()方法的使用
- 一个简单的极光推送
- angular返回上一页
- Java中Collections的sort方法和Comparable与Comparator的比较
- 树莓派-硬件和功能-硬件和功能
- 纯前端实现文件下载功能
- java split方法使用注意事项
- 简单的时钟代码
- 滚动条的应用
- eclipse设置有颜色的主题背景
- How do I deploy a Flask application in IIS?
- 前端中的HTTP协议
- 简单源码分析之小小的Toast
- 文件的复制
- Java并发编程:深入剖析ThreadLocal