`
xiaohua2125
  • 浏览: 33302 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

String.split()用法的一点经验

    博客分类:
  • java
阅读更多
在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("\\\\");

转自:http://hi.baidu.com/danghj/blog/item/7259c2b461bebc708bd4b21e.html

分享到:
评论
2 楼 franktony 2008-03-27  
晕倒
建议楼主学学正则表达式先
1 楼 liangguanhui 2008-03-03  
其实,里面的参数是一个正则表达式。

相关推荐

    String.split()方法使用总结

    String.split()方法使用总结

    power-split:有时string.split()还不够!

    它提供了一些实用程序方法来解决一些用例,而这些用例String.split()调用将无法解决。它能做什么? 使用正则表达式分割字符串,非常明显! 参见PowerSplit.split() 使用正则表达式分割字符串,以提供有关每个元素的...

    C# 中string.split用法详解

    第一种方法 string s=abcdeabcdeabcde; string[] sArray=s.Split...使用另一种构造方法对多个字 符进行分割: string s=abcdeabcdeabcde; string[] sArray1=s.Split(new char[3]{'c','d','e'}) ; foreach(string i in

    Java中String.split()用法小结

    主要介绍了Java中String.split()用法小结的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    String类的intern、split方法

    java中String类的intern、split方法的详细讲解。

    C#中split用法实例总结

    本文实例总结了C#中split用法。分享给大家供大家参考,具体如下: 以下是我转载的两个不同的人的,方便大家及自己查阅 string s=abcdeabcdeabcde; string[] sArray=s.Split(c); foreach(string i in sArray) ...

    leetcode添加元素使和等于-LeetCode:LeetCode解决方案和技巧

    使用Java split() 方法 split() 方法根据匹配给定的正则表达式来拆分字符串。 注意: . 、 | 和 * 等转义字符,必须得加 \。多个分隔符,可以用 | 作为连字符。 // 字符串转数组 java.lang.String String str = "0,1...

    Javascript中的Split使用方法与技巧

    使用方法:myArray=string.split(“|”) 说明:”|”为切割特征字符,string为要切割的字符串,myArray为切割结果(存放于数组),使用方法myArray[n],n=myArray.length。 起先我还用asp中的思维在考虑怎么得到...

    Java字符串split使用方法代码实例

    主要介绍了Java字符串split使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Android中Split()字符串分割特殊用法案例详解

    2.特殊用法–当split()分割字符串遇上特殊符号 案例分析 String str = abc|dfg; String[] all=str.split(|); system.out.println(all[0]); 结果为 a 原因分析 | 在正则表达式中是个已经被使用的特殊符号(”.”、”...

    python分割和拼接字符串

    关于string的split 和 join 方法对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样。1.string.split(str=’ ‘,num=string.count(str)): 以str为分隔,符切片string,如果num...

    StringAPI.java

    String[] split(String regex) boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 int ...

    java-正则表达式-正则表达式元素介绍

    正则表达式主要配合以下方法使用 匹配 string.matches() 分割 string.split() 替换 string.replaceAll()

    举例详解Python中的split()函数的使用方法

    语法:str.split(str=””,num=string.count(str))[n] 参数说明: str: 表示为分隔符,默认为空格,但是不能为空(”)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素 num:表示分割次数。如果存在参数...

    js中split函数的使用方法说明

    splitsplit与join作用相反,用于把一个字符串分割成字符串数组.stringObject.split(a,b)这是它的语法. a是必须的 决定从a这分割.b不是必须的,可选。该参数可指定返回的数组的最大长度 。如果设置了该参数,返回的...

    C#中使用Split方法拆分字符串实例

    C#中有一个字符串拆分函数String.Split(),可以用于将一个字符串,拆分为一个字符串数组。在拆分的时候,需要一个拆分的“分隔符”。这个“分隔符”可以是一个字符,也可以是多个字符组成一个字符串。 先举一个简的...

    cidr-split:CIDR的拆分设施

    用法 要运行以下示例,请运行: npm run readme "use strict" ; const CIDR = require ( "../index.js" ) ; console . log ( "Split 10.0.0.0/16 into two and print out" ) ; CIDR . fromString ( "10.0.0.0/16...

    C#优化字符串操作

    1.Convert.ToInt32与Int32.Parse的恩恩怨怨 2.Split的3种用法 3.@"abc"和"abc"区别在那里 4.保留2位有效小数及四舍五入 5.url传递中文的解决方案 6.把123456789转换为12-345-6789的3种方法 7.交换...

    javascript String split方法误操作

    split定义和用法 split() 方法用于把一个字符串分割成字符串数组。 语法 stringObject.split(separator, howmany)参数 描述 separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可...

Global site tag (gtag.js) - Google Analytics