簡體   English   中英

使用正則表達式作為StringTokenizer的分隔符

[英]using regular expression as delimiter with StringTokenizer

我是java編程新手,遇到了StringTokenizer類。 構造函數接受要拆分的字符串和另一個可選的定界符字符串,在拆分原始字符串時,每個字符都將被視為單獨的定界符。 我想知道是否有任何方法可以拆分通過正則表達式作為分隔符的字符串。 例如:

String s="34.5xy32.6y45.7x36xy"
StringTokenizer t=new StringTokenizer(s,"xy");
System.out.println(t.nextToken());
System.out.println(t.nextToken());

實際輸出為:

34.5
32.6

但是,所需的輸出是:

34.5
32.6y45.7x36

希望你們能提供幫助。 另外,如果StringTokenizer類無法實現,請提出一些解決方法。

提前致謝。

ps是否有辦法知道StringTokenizer當前在提供的集合中使用哪個字符作為定界符?

在這里您將要使用String.split() ,這將為您提供具有所需輸出的數組。

它將接受您的輸入並將其拆分為您提供的字符串的完全匹配項。 StringTokenizer將拆分您提供的任何集合,而不是正則表達式。

因此,您將代碼更改為:

String s="34.5xy32.6y45.7x36xy";
String[] splitString = s.split("xy");
System.out.println(splitString [0]);
System.out.println(splitString [1]);

對於更復雜的示例,您可能還希望對數組進行邊界檢查,以使您不會離開數組的結尾

試試這個。

String s="34.5xy32.6y45.7x36xy";
final String SPLIT_STR = "xy";
final String mainStr = "34.5xy32.6y45.7x36xy";
final String[] splitStr = mainStr.split(SPLIT_STR);
System.out.println("First Index Of xy : " +
mainStr.indexOf(SPLIT_STR));
for(int index=0; index < splitStr.length; index++) {
System.out.println("Split : " + splitStr[index]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM