字符串分割

public   int   getCount(String   str,String   sign){

//查找某一字符串中str,特定子串s的出现次数

              if(str==null)   return   0; 

              StringTokenizer   s=new   StringTokenizer(str,sign); 

              return   s.countTokens(); 

      } 

public   String[]   getArray(String   str,String   sign){

//按特定子串s为标记,将子串截成数组。 

          int   count=getCount(str,sign); 

          int   j=0; 

          String[]   arr=new   String[count]; 

          for(int   i=0;i<count;i++){ 

                if(str.indexOf(sign)!=-1){ 

                          j           =str.indexOf(sign); 

                          arr[i]=str.substring(0,j); 

                          str       =str.substring(j+1); 

                  }else{ 

                          arr[i]=str; 

                  } 

          } 

          return   arr;     

  } 

public String[] split(String regex, int limit)根据匹配给定的正则表达式来拆分此字符串。SPLIT参数支持正则表达式, s.split("\\|+");//以|或多个|做为分割符号分割字符串,如果表达式不匹配输入的任何部分,则结果数组只具有一个元素,即此字符串。limit 参数控制模式应用的次数,因此影响结果数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。如果 n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。

split(String regex)中将默认第二个参数为0,会取消掉最后的空字符串。

public class SplitTest {

    public static void main(String[] args) {

String[] num = null;  //这里不用创建数组,split 方法会帮你创建大小合适的数组

String sLine="101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";

        num = sLine.split("\\|", -1);

        for (int i = 0; i < num.length; ++i) {

            System.out.println(i + ": " + num[i]);

        }}}

结果

0: 101494

1: 360103660318444

2: 2008/06/17

3: 周润英

4: 1292.0

5: 3085.76

6: 2778.28

7: 912.91

8: 106.0

9:

10:

11:

public static String[] Split(String str, String sp)    {// str要分割的字符串; sp分隔符;return 分割后的字符串;
  StringTokenizer st = new StringTokenizer(str, sp);
  String strSplit[];
  try  {
   int stLength=st.countTokens();//获取分割后的数量
   if(stLength<=1)   {    return null;   }
   strSplit=new String[stLength];
   int i=0;
   while (st.hasMoreTokens())   {
    strSplit[i]=st.nextToken().toString();
    i++;
   }  }
  catch(Exception e)  {   return null;  }
    return strSplit;
    }

你可能感兴趣的:(正则表达式,J#)