我需要标记一个字符串哪里有多个空间。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