字符串分割

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值