java实现String的split方法



在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;
	}
	

}

注意

  1. 首先java doc里已经说明, split的参数是reg, 即正则表达式, 如果用"|"分割, 则需使用"\\|"  
    (\\反斜线字符)
  2. 用* 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此, 因此也应加入"\\"
  3. 如果字符串中包含"\",首先这个字符串中的"\"需要转义, 即为"\\", 用split时需要写成split("\\\\")

          可以这样思考, 要写成用"\"分割,则首先需要转义"\\", 同时要让"\\"在正则表达式中有意义, 还需在第一个"\"和第二个"\"前面再加一个"\", 就变成了四个"\".


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值