Java里String.split需要注意的用法

我们常常用String的split()方法去分割字符串,有两个地方值得注意:

1. 当分隔符是句号时("."),需要转义:

由于String.split是基于正则表达式来分割字符串,而句号在正则表达式里表示任意字符。

//Wrong:
//String[] words = tmp.split(".");

//Correct:
String[] words = tmp.split("\\.");

所以,假设分隔符在正则表达式里有一定的意义时,需要格外留心,必须将它们转义才能达到分割的效果。

2. 假设字符串最后有连续多个分隔符,且这些分隔符都需要被分割的话,需要调用split(String regex,int limit)这个方法:

String abc = "a,b,c,,,";
String[] str = abc.split(",");

System.out.println(Arrays.toString(str)+" "+str.length);

String[] str2 = abc.split(",",-1);

System.out.println(Arrays.toString(str2)+" "+str2.length);

输出如下:

[a, b, c] 3
[a, b, c, , , ] 6

需要输出csv文件的时候,尤其需要注意。

Java里String.split需要注意的用法,布布扣,bubuko.com

时间: 2024-10-05 05:31:27

Java里String.split需要注意的用法的相关文章

Java 的 String.split 函数,消除空字符串

代码: String str = "the music made   it   hard      to        concentrate"; String delims = "[ ]+"; String[] tokens = str.split(delims); 结果为: the, music, made, it, hard, to, concentrate 原因: String.split(String regex):参数是一个正则表达式 转自:http:/

java里String类为何被设计为final

前些天面试遇到一个非常难的关于String的问题,"String为何被设计为不可变的"?类似的问题也有"String为何被设计为final?"个人认为还是前面一种问法更准确,设计成final仅仅保证了String类不能被继承,而Immutable相对于final要严格的多. 下文主要翻译自:http://java67.blogspot.sg/2014/01/why-string-class-has-made-immutable-or-final-java.html

字符串分割--java中String.split()用法

在java.lang包中有String.split()方法,返回是一个数组. 1.“.”和“|”都是转义字符,必须得加"\\"; 如果用“.”作为分隔的话,必须是如下写法: String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 如果用“|”作为分隔的话,必须是如下写法: String.split("\\|"),这样才能正确的分隔开,不能用String.split("

java的string.split()分割特殊字符时注意点

[1]单个符号作为分隔符 String address="上海|上海市|闵行区|吴中路"; String[] splitAddress=address.split("\\|"); //如果以竖线为分隔符,则split的时候需要加上两个斜杠[\\]进行转义 System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]); String address="上

【Java】Java里String 的equals和==

Java里面有对象和对象的引用的概念,在String方面,==比较的是引用,equals比较的是对象的具体值. String s1 = new String("abc");String s2 = new String("abc");System.out.println(s1 == s2);System.out.println(s1.equals(s2)); 上面的代码将打印一个false和一个true.这个很容易理解,原因就是s1和s2分别是两个不同String对象

java.lang.string split 以点分割字符串无法正常拆分字符串

//错误的做法String ip="192.168.11.23"; String[] spstr_IP=ip.split(".");//这种方式无法拆分在ip字符串 //可以正确拆分的做法String ip="192.168.11.23"; String[] spstr_IP=ip.split("\\.");

java String.split()用法

Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项: java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]]) stringObj 必选项.要被分解的 String 对象或文字,该对象不会被split方法修改. separator 可选项.字符串或正则表达式对象,它标识了

Java——String.split()函数

在java doc里有 String[] java.lang.String.split(String regex) Splits this string around matches of the given regular expression. This method works as if by invoking the two-argument split method with the given expression and a limit argument of zero. Tra

分享一个 Java String split 快速分割的方法

java中string.split() 方法比较强大,但是split()方法采用正则表达式,速度相对会慢一点, 其实大多数场景下并不需要使用正则表达式,下面分享一个不使用正则表达式分隔字符串的方法. 方法保证了和 string.split()的输出结果一致. 直接看代码: public static String[] split(String src,String delimeter){ String srcStr = src; String delimeterStr = delimeter;