yooli88

          java 字符串解析 轉(zhuǎn)至csdn的afgasdg

          StringTokenizer tokenizer = new StringTokenizer(number, ",");
                 
          boolean bool = true;
                 
          while (tokenizer.hasMoreTokens()) {
                     
          try {
                          Double.valueOf(tokenizer.nextToken());
                      }
          catch (Exception e) {
                          bool
          = false;
                      }
                  }
          //將字符串轉(zhuǎn)化為數(shù)組的方法
          int gv[];
            
          int i = 0;
             StringTokenizer tokenizer
          = new StringTokenizer(goodsVolume, ",, ");
                   gv
          = new int[tokenizer.countTokens()];//動(dòng)態(tài)的決定數(shù)組的長(zhǎng)度
               while (tokenizer.hasMoreTokens()) {
                  String d
          = tokenizer.nextToken();
                  gv[i]
          = Integer.valueOf(d);//將字符串轉(zhuǎn)換為整型
                  i++;
              }

          //字符串解析
              private String[] stringAnalytical(String str, String divisionChar) {
                  String string[];
                
          int i = 0;
                  StringTokenizer tokenizer
          = new StringTokenizer(str, divisionChar);
                  string
          = new String[tokenizer.countTokens()];// 動(dòng)態(tài)的決定數(shù)組的長(zhǎng)度
                   while (tokenizer.hasMoreTokens()) {
                      string[i]
          = new String();
                      string[i]
          = tokenizer.nextToken();
                      i
          ++;
                  }
                 
          return string;// 返回字符串?dāng)?shù)組
              }

          int countTokens()
                    計(jì)算在生成異常之前可以調(diào)用此 tokenizer 的 nextToken 方法的次數(shù)。
          boolean hasMoreElements()
                    返回與 hasMoreTokens 方法相同的值。
          boolean hasMoreTokens()
                    測(cè)試此 tokenizer 的字符串中是否還有更多的可用標(biāo)記。
          Object nextElement()
                    除了其聲明返回值是 Object 而不是 String 之外,它返回與 nextToken 方法相同的值。
          String nextToken()
                    返回此 string tokenizer 的下一個(gè)標(biāo)記。
          String nextToken(String delim)
                    返回此 string tokenizer 的字符串中的下一個(gè)標(biāo)記。




          public class StringAnalytical {

             
          // 字符串解析,將字符串轉(zhuǎn)根據(jù)分割符換成字符串?dāng)?shù)組
              private String[] stringAnalytical(String string, char c) {
                 
          int i = 0;
                 
          int count = 0;

                 
          if (string.indexOf(c) == -1)
                     
          return new String[] { string };// 如果不含分割符則返回字符本身
                  char[] cs = string.toCharArray();
                 
          int length = cs.length;
                 
          for (i = 1; i < length - 1; i++) {// 過(guò)濾掉第一個(gè)和最后一個(gè)是分隔符的情況
                      if (cs[i] == c) {
                          count
          ++;// 得到分隔符的個(gè)數(shù)
                      }
                  }
                  String[] strArray
          = new String[count + 1];
                 
          int k = 0, j = 0;
                  String str
          = string;
                 
          if ((k = str.indexOf(c)) == 0)// 去掉第一個(gè)字符是分隔符的情況
                      str = str.substring(k + 1);
                 
          if (str.indexOf(c) == -1)// 檢測(cè)是否含分隔符,如果不含則返回字符串
                      return new String[] { str };
                 
          while ((k = str.indexOf(c)) != -1) {// 字符串含分割符的時(shí)候
                      strArray[j++] = str.substring(0, k);
                      str
          = str.substring(k + 1);
                     
          if ((k = str.indexOf(c)) == -1 && str.length() > 0)
                          strArray[j
          ++] = str.substring(0);
                  }
                 
          return strArray;
              }

             
          public void printString(String[] s) {
                  System.out.println(
          "*********************************");
                 
          for (String str : s)
                      System.out.println(str);
              }

             
          public static void main(String[] args) {
                  String[] str
          = null;
                  StringAnalytical string
          = new StringAnalytical();
                  str
          = string.stringAnalytical("1aaa", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("2aaa@", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("@3aaa", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("4aaa@bbb", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("@5aaa@bbb", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("6aaa@bbb@", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("@7aaa@", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("@8aaa@bbb@", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("@9aaa@bbb@ccc", '@');
                  string.printString(str);
                  str
          = string.stringAnalytical("@10aaa@bbb@ccc@eee", '@');
                  string.printString(str);
              }
          }

          posted on 2011-04-06 18:54 迷茫在java的世界里 閱讀(364) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桐城市| 宜川县| 泰兴市| 弥勒县| 揭阳市| 大安市| 榆林市| 吉林市| 金溪县| 桃源县| 垫江县| 哈密市| 武邑县| 应用必备| 射阳县| 会理县| 阿勒泰市| 车致| 华坪县| 临武县| 连城县| 怀柔区| 四平市| 江孜县| 丹棱县| 界首市| 迭部县| 吉安市| 贡嘎县| 林西县| 北流市| 工布江达县| 荣昌县| 枣强县| 建瓯市| 长汀县| 瑞金市| 洪江市| 东方市| 凭祥市| 丰都县|