`
tidylee
  • 浏览: 5481 次
社区版块
存档分类
最新评论

Java String split()

    博客分类:
  • Java
阅读更多
Java中String.split()方法使用的是正则表达式,正则表达式的特殊符号都要转义,如 \ | . ( ) [ ] ^ $ - 等。

转定义符为 \\
如: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.IgnoreCase)
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());  这里通过[*]+ 巧妙的完成了我们的目标。
分享到:
评论

相关推荐

    java的String[] split 示例

    java的String[] split 示例

    String类的intern、split方法

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

    浅谈java String.split丢失结尾空字符串的问题

    下面小编就为大家带来一篇浅谈java String.split丢失结尾空字符串的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java正则表达式之split()方法实例详解

    主要介绍了Java正则表达式之split()方法,结合实例形式较为详细的分析了split方法的功能、使用方法及相关注意事项,需要的朋友可以参考下

    StringAPI.java

    Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...

    java日期计算 String date

    用于String类型的日期计算 String date1 = "2018-09-18";... String[] d1 = date1.split("-"); String[] d2 = date2.split("-"); int[] a1={0,0,0}; int[] a2={0,0,0}; int[] rs={0,0,0};

    Java中String.split()用法小结

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

    浅析Java中Split函数的用法技巧

    在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。以下我就为大家介绍,需要的朋友可以参考下

    javascript String split方法误操作

    语法 stringObject.split(separator, howmany)参数 描述 separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的...

    String 优化

    java String 优化,提高性能

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

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

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

    Java:分割字符串不能写成split(“$”)//$为要分割的字符 Android:分割字符串需要加上中括号split(“[$]”)//$为要分割的字符 2.特殊用法–当split()分割字符串遇上特殊符号 案例分析 String str = abc|dfg; ...

    详解C++的String类的字符串分割实现

    在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案是这里的三种方法。但我是通过JNI访问的,在里面用这些vector可能不中,自己封装了个,仅供参考: ...

    完整版Java全套入门培训课件 Java基础 06-集合(共24页).pptx

    String类 字符串是一个特殊的对象。 字符串一旦初始化就不可以被改变。 String str = “abc”; String str1 = new String(“abc”);...String[] split(String reg); String substring(int index); String(char[] arr);

    30个java工具类

    [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两...[工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具TimeUtil.java [工具类] 连数据库ConnectDB.java

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:...[工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具TimeUtil.java [工具类] 连数据库ConnectDB.java

    java字符串转数组.docx

    在Java中,将字符串转换为数组可以通过以下几种方式实现: 使用String类的toCharArray()方法: 这个方法将字符串转换...示例:String[] stringArray = str.split(","); 使用java.util.Arrays类的copyOfRange()方法:

    Java IO学习文件处理

    String[] str = line.split(","); List&lt;String&gt; list = map.get(str[1]); if(list == null){ list = new ArrayList&lt;String&gt;(); } list.add(str[0]); map.put(str[1], list); ...

    Java语言程序设计(第3版)第06章-字符串.pptx

    6.1.1 字符串的拆分和组合 Java语言程序设计(第3版) String[] split(String regex) static String join(CharSequence delimiter, CharSequence... elements) boolean matches(String regex) Java语言程序设计(第3...

    java 中字符串只中英数字混合需要分割的解决办法

    这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...

Global site tag (gtag.js) - Google Analytics