java 字符串截取的两种方式
1.split()+正则表达式来进行截取。
String.split()方法的原型是:public String[] split(String regex, int limit)
split函数是用于使用特定的切割符(regex)来分隔字符串成一个字符串数组,函数返回是一个数组。在其中每个出现regex的位置都要进行分解。
需要注意是有以下几点:
(1)regex是可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
(2)limit也是可选项。该值用来限制返回数组中的元素个数。
(3)要注意转义字符:“.”和“|”都是转义字符,必须得加"\\"。同理:*和+也是如此的。
如果用“.”作为分隔的话,必须是如下写法:
String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
(4)如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acountId=? and act_id =? or extra=?”,把三个都分隔出来,可以用
String.split("and|or");不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时
2.通过subString()方法来进行字符串截取。
subString通过不同的参数来提供不同的截取方式
可以只传一个参数 ,也可以传两个参数,两个参数的时候顾头不顾尾
import java.util.*; public class Demo { public static void main(String[] args) { String str = "abc,12,csdn,666.cd"; String[] strs=str.split(","); Demo re=new Demo(); re.print(strs); System.out.println("***********"); String[] strs2=str.split("\\."); re.print(strs2); System.out.println("***********"); String[] strs3=str.split(",|\\."); re.print(strs3); System.out.println("***********"); System.out.println(str.substring(2));//一个参数 System.out.println(str.substring(2,7));//两个参数 } public static void print(String[] strs) { for(int i=0,len=strs.length;i<len;i++){ System.out.println(strs[i].toString()); } } } 运行结果: abc 12 csdn 666.cd *********** abc,12,csdn,666 cd *********** abc 12 csdn 666 cd *********** c,12,csdn,666.cd c,12,