public class Choice {  public Choice() {
  }
  public static void main(String args[]) {
    String choice="a~1^b~2^c~3^";
    StringTokenizer st = new StringTokenizer(choice, "^");
    while (st.hasMoreTokens()) {
        String func = st.nextToken();
        StringTokenizer st2=new StringTokenizer(func, "~");
        String funcname = st2.nextToken();
        String funcid = st2.nextToken();
        System.out.print(funcname+"  ");
        System.out.print(funcid+"  ");
        }
  }
}
这个类详细说明了StringTokenizer的用法
以~和^来分割字符串

解决方案 »

  1.   

    就算不用现成的StringTokenizer类,自己写一个也不是很难吧。
    用indexOf,subString
      

  2.   

    faint,不知道怎么给分?点管理呀
      

  3.   

         String str="avb;ads;pa";
         StringTokenizer a=new StringTokenizer(str,";");
         int count=e.countTokens();
         int i=0;
         if (count>0)
         {
          try{
              strs=new String[count];
              while(a.hasMoreTokens())
              {
                String token = a.nextToken();
                    strs[i]=token;
                i++;
              }
           } 
         catch(ArrayIndexOutOfBoundsException e){System.out.println("数组越界");} 
        
      

  4.   

    上边的GG说的都对,小M就不说了,打个招呼!^_*
      

  5.   

    to 楼下的:
    这是你的QQ
      

  6.   

    public ArrayList split(String source,String splitby){
           int i;
           ArrayList result = new ArrayList();
           while(source.length()>0){
              i = source.indexOf(splitby);
              if (i==-1){
                  result.add(source);
                  return result;
              }
              result.add(source.substring(0,i));
              source = source.substring(i+splitby.length());
           }
           return result;
        }
      

  7.   

      public static int getSeparateCount(String string,String substr){
        int returnCount=0;
        while (string.length()>0){
          int i=string.indexOf(substr);
          if(i!=-1) {
            returnCount=returnCount+1;
            string=string.substring(i+substr.length(),string.length());
          }else{
            return 0;
          }
        }
        return returnCount;
      }
      /**获取分割符分割开的字符串个数
       * string 为原字符串
       * substr为分割符字符串
       */
      public static int getStrArrayCount(String source,String separate){
        String str_temp=source;
        if(str_temp.lastIndexOf(separate)+1!=str_temp.length())str_temp=str_temp.concat(separate);
        return getSeparateCount(str_temp,separate);
      }
      /**把字符串按分割符切换成字符串数组
       * string 为原字符串
       * substr为分割符字符串
       *isSaveDivide为是否在数组中保留分割符
       */
      public static String[] getStrings(String source,String separate,boolean isSaveSeparate){
        String str_temp=source;
        if(str_temp.lastIndexOf(separate)+separate.length()!=str_temp.length())
          str_temp=str_temp.concat(separate);
        //System.out.println(str_temp);
        int separateCount=getStrArrayCount(str_temp,separate);
        String[] rtStrings=new String[separateCount];
        for(int k=0;k<separateCount;k++){
          int i=str_temp.indexOf(separate);
          if(i!=-1) {
            if(isSaveSeparate)
              rtStrings[k]=str_temp.substring(0,i+separate.length());
            else
              rtStrings[k]=str_temp.substring(0,i);
            str_temp=str_temp.substring(i+separate.length(),str_temp.length());
          }
        }
        return rtStrings;
      }
    我一直在用