您的位置:首页 > 编程语言 > Java开发

java实现String的split方法

2015-04-18 21:34 381 查看

在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组。

用split方法分割一个类似"abc|dd|ff"的字符串

/*
*@(#)ForSplite.java 2015年4月18日
*
*Copyright 2015 Cbo,All rights reserved.
*/
package com.test.string;

import java.util.ArrayList;
import java.util.List;

/**
*實現String的split方法
*@author
*@date 2015年4月18日
*/
public class ForSplite {

/**
* @param args
*/
public static void main(String[] args) {
String str="abc|dd|ff";
String s=str.replaceAll("b", "ff");
String[] ss=str.split("\\|");
for(String sss:ss)
System.out.println(sss);

String[] s1=splitString(str,"|");
for(String s2:s1)
System.out.println(s2);

}
/**
* 實現String的split方法
* @param str
* @param flag
* @return
*/
public static String[] splitString(String str,String flag){
List<String> list=new ArrayList<String>();
while(str.contains(flag)){
int index=str.indexOf(flag);
String tmp=str.substring(0,index);
list.add(tmp);
str=str.substring(index+flag.length());
}
list.add(str);
String[] arr=new String[list.size()];
for(int i=0;i<list.size();i++){
arr[i]=list.get(i);
}
System.out.println("拆分的个数为【"+list.size()+"】");
return arr;
}

}

注意

首先java doc里已经说明, split的参数是reg, 即正则表达式, 如果用"|"分割, 则需使用"\\|"  
(\\反斜线字符)
用* 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此, 因此也应加入"\\"
如果字符串中包含"\",首先这个字符串中的"\"需要转义, 即为"\\", 用split时需要写成split("\\\\")
          可以这样思考, 要写成用"\"分割,则首先需要转义"\\", 同时要让"\\"在正则表达式中有意义, 还需在第一个"\"和第二个"\"前面再加一个"\", 就变成了四个"\".
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息