java 字符串解析
生活随笔
收集整理的這篇文章主要介紹了
java 字符串解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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);
?? ?}
}
?? ? ? ?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);
?? ?}
}
總結
以上是生活随笔為你收集整理的java 字符串解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几则常用的BASIS技巧整理
- 下一篇: 【FI】-【AM】跨工厂/事业部/利润中