java 字串解析

來源:互聯網
上載者:User
StringTokenizer tokenizer = new StringTokenizer(number, ",");
        boolean bool = true;
        while (tokenizer.hasMoreTokens()) {
            try {
                Double.valueOf(tokenizer.nextToken());
            } catch (Exception e) {
                bool = false;
            }
        }
//將字串轉化為數組的方法
int gv[];
   int i = 0; 
   StringTokenizer tokenizer = new StringTokenizer(goodsVolume, ",, ");
         gv = new int[tokenizer.countTokens()];//動態決定數組的長度
     while (tokenizer.hasMoreTokens()) {
        String d = tokenizer.nextToken();
        gv[i] = Integer.valueOf(d);//將字串轉換為整型
        i++;
    }


 //字串解析
    private String[] stringAnalytical(String str, String divisionChar) {
        String string[];
       int i = 0; 
        StringTokenizer tokenizer = new StringTokenizer(str, divisionChar);
        string = new String[tokenizer.countTokens()];// 動態決定數組的長度
         while (tokenizer.hasMoreTokens()) {
            string[i] = new String();
            string[i] = tokenizer.nextToken();
            i++;
        }
        return string;// 返回字串數組
    }


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








public class StringAnalytical {


    // 字串解析,將字串轉根據分割符換成字串數組
    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++) {// 過濾掉第一個和最後一個是分隔字元的情況
            if (cs[i] == c) {
                count++;// 得到分隔字元的個數
            }
        }
        String[] strArray = new String[count + 1];
        int k = 0, j = 0;
        String str = string;
        if ((k = str.indexOf(c)) == 0)// 去掉第一個字元是分隔字元的情況
            str = str.substring(k + 1);
        if (str.indexOf(c) == -1)// 檢測是否含分隔字元,如果不含則返回字串
            return new String[] { str };
        while ((k = str.indexOf(c)) != -1) {// 字串含分割符的時候
            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);
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.