`
adoph
  • 浏览: 5369 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaSe-Regex-String-split

 
阅读更多
在java.lang包中有String.split()方法,返回是一个数组。
  1、“.”和“|”都是转义字符,必须得加"\\";
  如果用“.”作为分隔的话,必须是如下写法:
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 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;
using 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());
分享到:
评论

相关推荐

    javase-2.2-API文档-中文版.zip

    赠送jar包:javase-2.2.jar; 赠送原API文档:javase-2.2-javadoc.jar; 赠送源代码:javase-2.2-sources.jar; 赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文...

    javase-3.3.3-API文档-中英对照版.zip

    赠送jar包:javase-3.3.3.jar; 赠送原API文档:javase-3.3.3-javadoc.jar; 赠送源代码:javase-3.3.3-sources.jar; 赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API...

    core-3.3.3 + javase-3.3.3+ zxing-1.7-core + zxing-j2se-1.7

    本文将深入探讨在给定的压缩包中涉及的几个关键组件:`core-3.3.3`, `javase-3.3.3`, `zxing-1.7-core` 和 `zxing-j2se-1.7`,以及与之相关的JDK版本,包括JDK1.7和JDK1.8。这些组件主要用于二维码生成和处理,对于...

    NetBeans-7.4-JavaSE-Windows(2/2)

    由于公司外网限制。需要的朋友可以搜索NetBeans-7.4-JavaSE-Windows。一起两个分卷。(仅Java)

    javase-3.3.3-API文档-中文版.zip

    赠送jar包:javase-3.3.3.jar; 赠送原API文档:javase-3.3.3-javadoc.jar; 赠送源代码:javase-3.3.3-sources.jar; 赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API...

    netbeans-6.9.1-ml-javase-windows

    netbeans-6.9.1-ml-javase-windows 第一个包,分三个包

    javase-2.2-API文档-中英对照版.zip

    赠送jar包:javase-2.2.jar; 赠送原API文档:javase-2.2-javadoc.jar; 赠送源代码:javase-2.2-sources.jar; 赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文...

    一维码二维码所需资源包javase-3.2.1 zxing-core-3.2.1.jar

    这两个资源包,`javase-3.2.1.jar` 和 `zxing-core-3.2.1.jar`,是开发Java应用程序时用于生成和解析一维码与二维码的关键组件。 `javase-3.2.1.jar` 是一个针对Java Standard Edition(Java SE)平台的特定版本库...

    netbeans-7.4-javase-windows

    netbeans-7.4-javase-windows

    javase-2.1.jar

    Google 二维码生成识别 xzing javase-2.1 适用于jkd1.6

    javase-3.3.0.zip

    1. 引入库:首先需要在项目中引入javase-3.3.0.jar作为依赖,这通常通过构建工具如Maven或Gradle来完成,或者手动将jar文件添加到项目的类路径中。 2. 导入类:在代码中,需要导入`MatrixToImageWriter`类以及可能...

    netbeans-7.3-javase-windows

    标题“netbeans-7.3-javase-windows”指的是NetBeans IDE的一个特定版本,即7.3版,专为Windows操作系统设计,用于Java SE(标准版)开发。NetBeans IDE是一款开源的集成开发环境(IDE),它支持多种编程语言,包括...

    zxing-3.1.0.jar包及javase-3.1.0包

    在你提到的"zxing-3.1.0.jar"和"zxing-javase-3.1.0.jar"这两个文件中,我们主要关注的是Java版本的ZXing库。 `zxing-3.1.0.jar` 是核心库,包含了ZXing的主要功能,如解码和编码各种条码格式。这个库可以独立使用...

    zxing-2.2.jar包及javase-2.2包.rar

    zxing2.2版本jar包,分别是core-2.2.jar和javase-2.2.jar,java生成二维码的两个jar,core为二维码生成包,javase为java文件什么的工具类包。支持jdk 1.6 亲身测试

    两个zxing的jar包,一个是core-3.3.3第二个是javase-3.3.3,亲测可用

    `javase-3.3.3.jar`是ZXing为Java标准版(Java SE)提供的扩展,它包含了一些额外的功能,专门针对桌面环境。这个包提供了对Java AWT和Swing的支持,使得开发者能够更轻松地创建用户界面来显示和捕获条码图像。例如...

    zxing-3.1.0.jar和zxing-javase-3.1.0.jar

    在给定的文件中,“zxing-3.1.0.jar”和“zxing-javase-3.1.0.jar”是ZXing库的两个不同版本,用于Java平台。下面我们将详细探讨这两个文件以及与二维码相关的知识点。 1. **ZXing库介绍** ZXing,中文名斑马线,...

    javase-2.0.jar

    使用java在服务端进行aes的加密解密,前端使用该js进行aes加密解密;

    JavaSE--API.md

    JavaSE--API.md

    javase-zxing-3.4.1.jar

    zxing二维码解析过程中,解决BufferedImageLuminanceSource 报错,解决 import com.google.zxing.client.j2se.BufferedImageLuminanceSource;错误的问题。zxing-master-3.4.1 版本编译而来,已经亲自测试验证。

    zxing-core-3.2.2 zxing-javase-3.2.1

    ZXing支持多种语言,其中包括Java,这也是我们讨论的`zxing-core-3.2.2`和`zxing-javase-3.2.1`这两个jar包的核心所在。 `zxing-core-3.2.2.jar`是ZXing的主要库,包含了处理条码和二维码解码的所有核心算法和数据...

Global site tag (gtag.js) - Google Analytics