2012-07-19 34 views
-2

我有一個字符串作爲StringTokenizer的工作不

str=123|apple|apple|apple|dog$

我想單獨使用字符串 「|」字符。

String str = "123|apple|apple|apple|dog$"; 
    StringTokenizer strString = new StringTokenizer(str..nextToken(), "|"); 
    int i; 
    while (strString.hasMoreElements()) { 
     if (i == 0) 
      str1 = Loginstring.nextToken(); 
     else if (i == 1) 
      str2 = Integer.Loginstring.nextToken(); 
     else if (i == 2) { 
      str3 = Loginstring.nextToken(); 
      break; 
     } 
     i = i + 1; 
    } 

但在第一圈退出開始(這意味着它從循環退出,如果我超過1),,我真的不知道Ÿ它會發生,什麼不妥

+1

很容易做到,你可以提供你在做什麼更好的代碼示例... (它不是編譯,並且它不完整) – 2012-07-19 12:07:35

+1

你可以使用'str.split(「\\ |」)''來分割'|' – 2012-07-19 12:08:20

+0

str = 123 | apple | apple | apple | dog $是我的字符串。我想爲「|」分隔字符串字符使用StringTokenizer,如何做到這一點 – 2012-07-19 12:10:59

回答

5

這是你在想什麼,實現

String str1 = "", str2 = "", str3 = "", str4 = "", str5 = ""; 
String str = "123|apple|apple|apple|dog$"; 
StringTokenizer strString = new StringTokenizer(str, "|"); 
int k = 0; 
while (strString.hasMoreElements()) { 
    if (k == 0) 
     str1 = strString.nextToken(); 
    else if (k == 1) 
     str2 = strString.nextToken(); 
    else if (k == 2) { 
     str3 = strString.nextToken(); 
    } else if (k == 3) { 
     str4 = strString.nextToken(); 
    } else if (k == 4) { 
     str5 = strString.nextToken(); 
     break; 
    } 
    k = k + 1; 
} 
System.out.println(str1); 
System.out.println(str2); 
System.out.println(str3); 
System.out.println(str4); 
System.out.println(str5); 

但這是可以在一個聲明

String[] tokens = str.split("\\|"); // this is that single statment 
for (String token : tokens) 
    System.out.println(token); 

str1 = tokens[0]; 
str2 = tokens[1]; 
str3 = tokens[2]; 
str4 = tokens[3]; 
str5 = tokens[4]; 

System.out.println(str1); 
System.out.println(str2); 
System.out.println(str3); 
System.out.println(str4); 
System.out.println(str5); 
+0

感謝您的迴應,現在我成功地使用了第二種方法 – 2012-07-19 12:55:58

+0

和i當我在這個論壇上每次問問題時都會激怒,實際上這個論壇的質量標準是什麼 – 2012-07-19 13:00:35

+0

@sivanesan不會被激怒。請在準備查詢時耐心等待。也請看[FAQ](http://stackoverflow.com/faq)的第一部分, – sunil 2012-07-19 13:13:10

1

使用String.split("\\|")分裂串。

+0

轉義只與正則表達式相關(即'String.split()'),而不是StringTokenizer – 2012-07-19 12:14:21

+0

謝謝...這對我來說是一件新事物 – 2012-07-19 12:33:20