public class ComFuns {
/**
 * 将特殊字符分隔的字符串分解为数组,如"1^2233^23^22"或者"1^2233^23^22^"
 * @param  val 源字符串
 * @param  c_b 特殊字符
 * @return 转换后的字符串数组
 */
  public static String[] strToArray(String strSource,String strSpecial) {
/* StringTokenizer list = new StringTokenizer(val,c_b);
        String[] reqs;
reqs = new String [list.countTokens()];
int i = 0;
while (list.hasMoreTokens()) {
    reqs [i++] = (String) list.nextToken();
        }
        return reqs;*/     int iLastIndex = strSource.lastIndexOf(strSpecial) ;
     if (iLastIndex != (strSource.length() -strSpecial.length() ) )
       strSource = strSource +strSpecial;     String[] ReturnArray;
     int Counter=0;
     int StartPos=0,EndPos=0;     StartPos = strSource.indexOf(strSpecial);
     while (StartPos != -1)
     {
       Counter++;
       StartPos = strSource.indexOf(strSpecial,StartPos+1);
     }     if (Counter == 0)
     {
return null;
     }
     else
     { ReturnArray = new String[Counter];
       StartPos = 0;
       EndPos = strSource.indexOf(strSpecial);
       Counter = 0;       while (EndPos != -1)
       {
         ReturnArray[Counter] = strSource.substring(StartPos,EndPos);
         Counter++;
         StartPos = EndPos + strSpecial.length();
         EndPos = strSource.indexOf(strSpecial,StartPos);
       }
     }     return ReturnArray;
  }

解决方案 »

  1.   

    调用时这样调用:
    假入strParam为如"1^2233^23^22"或者"1^2233^23^22^"
    String[] paramArray =  ComFuns.strToArray(strParam,"^") ;
      

  2.   

    String a[];
    String b="123,456,789,"
    a=b.split(",");得到结果:a[0]="123",a[1]="456",a[2]="789"
    split要在jdk1.4下才有.
      

  3.   

    globalname(google_boy):不好意思 我的jdk只有1.3.1
      

  4.   

    用StringTokenizer然后再把"/"填陶你分割后的字符串中
      

  5.   

    oraclevbc(多多):你稍等一下正在试;若是好的绝对给分,你放心
    jmars(jmouse) :StringTokenizer是在java.util.后面的那一个包里,有完整的例子吗?我也会给分的!
      

  6.   

    /* StringTokenizer list = new StringTokenizer(val,c_b);
            String[] reqs;
    reqs = new String [list.countTokens()];
    int i = 0;
    while (list.hasMoreTokens()) {
        reqs [i++] = (String) list.nextToken();
            }
            return reqs;*/
    这段话屏蔽掉了,要看清楚哦
      

  7.   

    sorry 上午有点事,可能耽误一下。但今天一定会给分!
      

  8.   

    oraclevbc(多多) :String[] paramArray =  ComFuns.strToArray(strParam,"^") ;
    这句好像有点问题:tomcat提示认为paramArray 没有初始化。具体提示如下:
    cannot resolve symbol
    symbol  : variable paramArray  
      

  9.   

    应该没有问题,我已经试过了,举例如下:假如ComFuns.class在test包下,以下是一个jsp页面调用该类的例子。<%@ page import="test.*" %>
    <html>
    <head>
    </head>
    <body>
    <%
        String str1="11^22^33";
        String[] paramArray =  ComFuns.strToArray(str1,"^") ;
        int i;
        for(i=0;i<paramArray.length;i++)
        out.println(paramArray[i]);    
    %>
    </body>
     </html>