`
qmug
  • 浏览: 198046 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java split用法

阅读更多
Java split用法

java.lang.string.split

split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator,[limit]])

stringObj
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。

separator
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽
略该选项,返回包含整个字符串的单一元素数组。

limit
可选项。该值用来限制返回数组中的元素个数。

说明:
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解
。separator 不作为任何数组元素的部分返回。


示例1:
public class SplitDemo {
   
     public static String[] ss = new String[20];

     public SplitDemo() {

         String s = "The rain in Spain falls mainly in the plain.";
         // 在每个空格字符处进行分解。
         ss = s.split(" ");
     }

     public static void main(String[] args) {

         SplitDemo demo = new SplitDemo();
         for (int i = 0; i < ss.length; i++)
             System.out.println(ss[i]);
     }

}

程序结果:
The
rain
in
Spain
falls
mainly
in
the
plain.


示例2:
public class SplitDemo {

     public static String[] ss = new String[20];

     public SplitDemo() {

         String s = "The rain in Spain falls mainly in the plain.";
         // 在每个空格字符处进行分解。
         ss = s.split(" ", 2);
     }

     public static void main(String[] args) {
         SplitDemo demo = new SplitDemo();
         for (int i = 0; i < ss.length; i++)
             System.out.println(ss[i]);
     }

}

程序结果:
The
rain in Spain falls mainly in the plain.


示例3:
public class SplitDemo {

     public static String[] ss = new String[20];

     public SplitDemo() {

         String s = "The rain in Spain falls mainly in the plain.";
         // 在每个空格字符处进行分解。
         ss = s.split(" ", 20);
     }

     public static void main(String[] args) {
         SplitDemo demo = new SplitDemo();
         for (int i = 0; i < ss.length; i++)
             System.out.println(ss[i]);
     }

}

程序结果:
The
rain
in
Spain
falls
mainly
in
the
plain.


示例4:
public class SplitDemo {

     public static void main(String[] args) {

         String value = "192.168.128.33";
         String[] names = value.split(".");
         for (int i = 0; i < names.length; i++) {
             System.out.println(names[i]);
         }

     }
}

运行结果:

对,没看错!没有任何输出!
让我们来看看 split 方法的方法签名吧:

public string[] split(string regex)
这里的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式,看了 split 方法的实现代码就更坚定了我们的信心:

public string[] split(string regex, int limit) {
return pattern.compile(regex).split(this, limit);
}
split 的实现直接调用的 matcher 类的 split 的方法。读者已经知道,“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。
只要将
String[] names = value.split(".");
改为
String[] names = value.split("\\.");
就可以了。

输出结果:
192
168
128
33


再加一点儿补充(这是Java帮助文档中的,更清晰一些):

public String[] split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。
此方法返回的数组包含此字符串的每个子字符串,这些子字符串由另一个匹配给定的表达式的子字符串终止或由字符串结束来终止。数组中的子字符串按它们在此字符串中的顺序排列。如果表达式不匹配输入的任何部分,则结果数组只具有一个元素,即此字符串。

limit 参数控制模式应用的次数,因此影响结果数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。如果 n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。

例如,字符串 "boo:and:foo" 使用这些参数可生成下列结果:

Regex      Limit                结果

   :          2             { "boo", "and:foo" }
   :          5             { "boo", "and", "foo" }
   :          -2            { "boo", "and", "foo" }
   o          5             { "b", "", ":and:f", "", "" }
   o          -2            { "b", "", ":and:f", "", "" }
   o          0             { "b", "", ":and:f" }

这种形式的方法调用 str.split(regex, n) 产生与以下表达式完全相同的结果:

Pattern.compile(regex).split(str, n)

参数:
regex - 定界正则表达式
limit - 结果阈值,如上所述
返回:
字符串数组,根据给定正则表达式的匹配来拆分此字符串,从而生成此数组
抛出:
PatternSyntaxException - 如果正则表达式的语法无效
从以下版本开始:
1.4


public String[] split(String regex)根据给定的正则表达式的匹配来拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,结果数组中不包括结尾空字符串。

例如,字符串 "boo:and:foo" 产生带有下面这些表达式的结果:

Regex                 结果
   :            { "boo", "and", "foo" }
   o            { "b", "", ":and:f" }

参数:
regex - 定界正则表达式
返回:
字符串数组,根据给定正则表达式的匹配来拆分此字符串,从而生成此数组。
抛出:
PatternSyntaxException - 如果正则表达式的语法无效

6
0
分享到:
评论

相关推荐

    JAVA_split_用法

    JAVA_split_用法,split详解,记得好评哦

    java split用法详解及实例代码

    主要介绍了java split用法的相关资料,并附实例代码,帮助大家学习参考,需要的朋友可以参考下

    Java中Split的用法及注意

    Java中Split的用法及注意, 本文只是大概说了一下java中split的用法,其他方面要你们去查看了。

    java中的split的用法

    java中的split的用法,里面包含几个很好的实例,很好的学习资料

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

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

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

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

    Java中String.split()用法小结

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

    JavaScript几个函数 - split()、join()、substring()和indexOf()

    JavaScript几个函数 - split()、join()、substring()和indexOf()的用法!

    markdown-split:Markdown的扩展,可将内容拆分为版块页面

    安装npm install markdown-split用法let split = require ( 'markdown-split' ) ;let content = `§ First sectionContent of the first section.§ Second sectionContent of the second section.` ;let sections =...

    python中的split()函数和os.path.split()函数使用详解

    今天小编就为大家分享一篇python中的split()函数和os.path.split()函数使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Java编码规范总结

    修复建议:String的split方法传递的参数是正则表达式,正则表达式本身用到的字符需要转义,如:句点符号“.”,美元符号“$”,乘方符号“^”,大括号“{}”,方括号“[]”,圆括号“()” ,竖线“|”,星号“*”,...

    AIC的Java课程1-6章

     学会使用String.split方法,Scanner类,StringTokenizer类分解字符串。  [*]利用Formatter类的printf或format方法格式化输出字符串对象。(System.out对象封装了这两个方法)。 第10章 基本数据结构 ...

    javascript-client:适用于Split Software的NodeJS和Browser SDK客户端

    适用于Java的Split SDK概述此SDK旨在与Split(可控制的推出平台)一起使用,Split通过Split feature标志为您的用户提供功能,以管理您的完整客户体验。兼容性JavaScript SDK是Node.js和Web浏览器环境的同构库。 它...

    javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法

    Split方法: 以下程序例子实现了split和整数字符串互转的用法。。。 [removed] function evil() { var toint=parseInt(“123”);//字符串转换成整形 var intvalue=123; var tostr=intvalue.toString();//类型转换成...

    javascript String split方法误操作

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

    svmwrapper4j:基于Java的libSVM包装器

    用法示例(来自CompleteTest.java): // Raw data goes into DataElement objectsArrayList&lt;DataElement&gt; elements = loadInputData();// Perform scale operationScale.scale(elements, -1, 1);// Split the list...

    NetFrame:基于java.nio的事件驱动的网络框架

    服务端用法: ServerEventHandler eventHandler=new MyServerEventHandler(); new NioServer(eventHandler).startup(8888); 其中的MyServerEventHandler继承ServerEventHandler,用户可以重写其中的onRead方法对接收...

    Java-PHP-C#

    ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取字符串的一部分(具体用法你可以阅读手册). 比如说,我们想从 path/URL 提取文件名 – 下面的代码就是你需要: ereg("([^\\/]*)$", $pathOrUrl, $regs);...

    将DataTable作为存储过程参数的用法实例详解

    最近工作中写了几个存储过程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据集中的一列用逗号拆分存到一个List中,再转化为字符串传给存储过程,很是...

    zip4j:一个用于zip文件和流的Java库

    Zip4j-一个用于zip文件/流的Java库 谢谢 用于评定Zip4j作为最佳Java库zip... 正如你可以在下面的用法部分中看到,与zip文件的工作,现在即使是一个单一的代码行,比起。 我的意思是不破坏Java的内置zip支持。 实际上

Global site tag (gtag.js) - Google Analytics