java实现String的split方法

来源:互联网 发布:淘宝网店价值评估 编辑:程序博客网 时间:2024/05/22 13:00


在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("\\\\")

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


0 0
原创粉丝点击