我需要標記一個字符串哪裏有多個空間。tokenizer或分割字符串在多個空格在java
例如
"HUNTSVILLE, AL 30 39.8 44.3 52.3"
成爲
"HUNTSVILLE, AL","30","39.8","44.3","52.3"
StringTokenizer st = new StringTokenizer(str, " ");
只是任何標記化的空白,而且我想不出一個正則表達式做什麼,我需要。
感謝
我需要標記一個字符串哪裏有多個空間。tokenizer或分割字符串在多個空格在java
例如
"HUNTSVILLE, AL 30 39.8 44.3 52.3"
成爲
"HUNTSVILLE, AL","30","39.8","44.3","52.3"
StringTokenizer st = new StringTokenizer(str, " ");
只是任何標記化的空白,而且我想不出一個正則表達式做什麼,我需要。
感謝
試試這個:
String s = "HUNTSVILLE, AL 30 39.8 44.3 52.3";
String[] parts = s.split("\\s{3,}");
for(String p : parts) {
System.out.println(p);
}
的\s
匹配任何空格字符,並且{3,}
將在3次或更多次與之匹敵。
上面的代碼段將打印:
HUNTSVILLE, AL 30 39.8 44.3 52.3
謝謝。這很好。比標記器好得多。一有機會,我會盡快閱讀我的正則表達式。 – jeremyjjbrown
不客氣jeremyjjbrown。 –
你不能使用分裂?
String[] tokens = string.split(" ");
雖然您必須過濾空條目。
/*
* Uses split to break up a string of input separated by
* whitespace.
*/
import java.util.regex.*;
public class Splitter {
public static void main(String[] args) throws Exception {
// Create a pattern to match breaks
Pattern p = Pattern.compile("[ ]{2,}");
// Split input with the pattern
String[] result =
p.split("one,two, three four , five");
for (int i=0; i<result.length; i++)
System.out.println(result[i]);
}
}
嘗試這種方式:
String[] result = "HUNTSVILLE, AL 30 39.8 44.3 52.3".split("[ ]{2,}");
for (int x=0; x<result.length; x++)
System.out.println(result[x]);
[] - 表示空間
{2,} - 表示超過2
@ user914763再次閱讀你的問題,這沒有任何意義。提供你所得到的以及你想要發生的事情,否則沒有人能夠幫助你。就目前而言,你從來沒有真正描述過你想要的東西,所以你需要做的事情對我們所有人來說都是一個謎。 –
我的問題很有道理。我有一個要解析的文本樣本和期望的結果。我得到了4個答案,這些答案都可以幫助那些善意幫助我的人解決我的問題。 – jeremyjjbrown