Java String.split()用法小结

来源:互联网 发布:捕鱼游戏编程原理 编辑:程序博客网 时间:2024/05/17 07:09

Java String.split()

用法小结

 

 

java.lang

包中有

String.split()

方法,返回是一个数组

 

我在应用中用到一些,给大家总结一下,仅供大家参考:

 

1

如果用“.”作为分隔的话,

必须是如下写法:

String.split("\\."),

这样才

能正确的分隔开,不能用

String.split("."); 

2

如果用“|”作为分隔的话,

必须是如下写法:

String.split("\\|"),

这样才

能正确的分隔开,不能用

String.split("|"); 

“.”和“|”都是转义字符,必须得加

"\\"; 

3

如果在一个字符串中有多个分隔符,

可以用“|”作为连字符,

比如:

“acount=? 

and uu =? or n=?”,把三个都分隔出来,可以用

String.split("and|or"); 

使用

String.split

方法分隔字符串时,分隔符如果用到一些特殊字符,可能会

得不到我们预期的结果。

  

我们看

jdk doc

中说明

   

public String[] 

split

(String regex) 

 Splits this string around matches of the given regular expression.  

参数

regex

是一个

 regular-expression

的匹配模式而不是一个简单的

String

他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:

 

用竖线

 | 

分隔字符串,你将得不到预期的结果

 

    String[] aa = "aaa|bbb|ccc".split("|"); 

    //String[] 

aa 

"aaa|bbb|ccc".split("\\|"); 

这样才能得到正确的结果

 

    for (int i = 0  i <aa.length  i++ ) { 

      System.out.println("--"+aa[i]);  

    }  

用竖

 * 

分隔字符串运行将抛出

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[i]);  

    }  

显然,

+ * 

不是有效的模式匹配规则表达式,用

"\\*" "\\+"

转义后即可得到正

确的结果。

 

"|" 

分隔串时虽然能够执行,但是却不是预期的目的,

"\\|"

转义后即可得到正

确的结果。

 

还有如果想在串中使用

"\"

字符,则也需要转义

.

首先要表达

"aaaa\bbbb"

这个串

就应该用

"aaaa\\bbbb",

如果要分隔就应该这样才能得到正确结果:

 

String[] aa = "aaa\\bbb\\bccc".split("\\\\"); 

 

第一种方法:

 

string s=abcdeabcdeabcde; 

string[] sArray=s.Split('c')  

foreach(string i in sArray) 

Console.WriteLine(i.ToString()); 

输出下面的结果

ab 

deab 

deab 

de 

第二种方法:

 

我们看到了结果是以一个指定的字符进行的分割。

使用另一种构造方法对多个字

符进行分割

string s="abcdeabcdeabcde"; 

string[] sArray1=s.Split(new char[3]{'c','d','e'})  

foreach(string i in sArray1) 

Console.WriteLine(i.ToString()); 

可以输出下面的结果:

 

ab 

ab 

ab 

第三种方法:

 

除了以上的这两种方法以外

,

第三种方法是使用正则表达式。新建一个控制台项

目。然后先添加

 using System.Text.RegularExpressions; 

System.Text.RegularExpressions 

 

string content=agcsmallmacsmallgggsmallytx; 

string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCas

e) 

foreach(string i in resultString) 

Console.WriteLine(i.ToString()); 

输出下面的结果

agc 

mac 

ggg 

ytx 

第四种方法:

 

string str1=

*****

*****

*****

*****

*****

string[] str2; 

str1=str1.Replace(*****,*)  

str2=str1.Split(*)  

foreach(string i in str2) 

Console.WriteLine(i.ToString()); 

第五种方法:

 

string str1=

**

*****

*****

*****

*****

我希望显示的结果为

:

我是一个教师。

 

我如果采用上面的第四种方法来做就会产生下面的错误:我

   

是一个教师。中

间有空格输出,所以输出结果并不是希望的结果,这就又回到了正则表达式了,

这时可以采用下面的第五种方法:

 

string str1=

**

*****

*****

*****

*****

string[] 

str2 

System.Text.RegularExpressions.Regex.Split(str1,@[*]+);  

foreach(string i in str2) 

Console.WriteLine(i.ToString()); 

这里通过

[*]+ 

巧妙的完成了我们的目标。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 12岁洗澡发烧怎么办 word转pdf乱码怎么办? 花生油炸糊了怎么办 熟鸡肉很腥怎么办 鸡肉稍微有点味怎么办 新鲜鸡肉有点臭怎么办 手机屏幕自己乱点怎么办 电脑开机出现f1f2怎么办 普通话证书身份证号有误怎么办 湖南身份证在深圳怎么办 超市快过期东西怎么办 超市打碎了东西怎么办 毕业证与身份证号不符怎么办 家里电路坏了怎么办 深圳户口没房怎么办 深圳租凭合同怎么办 房屋续租水电费怎么办 二手房买到凶宅怎么办 公租房退休之后怎么办 深圳公务员无房怎么办 深圳安居房回执遗失怎么办 社保网注册不了怎么办 深圳怎么办少儿医保卡 少儿没缴纳医保怎么办 上海辞职后社保怎么办 辞职去上学社保怎么办 辞职后异地社保怎么办 个人不想交社保怎么办 离职去异地社保怎么办 离职到外省社保怎么办 辞职去外省社保怎么办 永康光伏补贴怎么办? 找到工作后档案怎么办 夫妻离婚后户口怎么办 异地档案辞职后怎么办 去网吧没有招聘怎么办 建筑工地老板不给钱怎么办 2018高压电工证怎么办 深圳户口怎么办户口卡 在深圳找不到工作怎么办 亲戚户口不迁出怎么办