0

例如:执行后,String 的输出应该和严格一致"hello world yo""hello   world  yo"

更重要的是,输出应该是String[]其中:

String[0] == "hello"; String[1] == "world"; String[2] == "yo";

以便其他方法可以处理后面的有效词。

我在想String.split(" "),但是单词之间的空格不确定,然后会导致异常..

4

5 回答 5

3

您可以使用

  String.split("\\s+") // one or more whitespace.

不要==用于字符串comaprision,而是使用String.equals()

编辑评论中的问题

符号是什么?如果有一个或多个 "_" 或 "\n" 怎么办?

如您所见,String#split() API接受正则表达式作为参数。是空格的\s简写字符类,而+用于重复前一项或多次。

现在,如果您想拆分 String

  1. _IE。下划线 -->"this__is_test".split("[_]+");

  2. \nIE。换行 -->"this__is_test\n new line".split("\\r?\\n");

正则表达式教程

于 2013-04-25T18:13:48.183 回答
1

你可以在"\\s+". 拆分一个或多个空格字符。

于 2013-04-25T18:14:07.387 回答
0

我认为 split 函数需要正则表达式,但如果它没有,那么下面的工作。

此处的正则表达式可能不正确,但它展示了您正在尝试做的事情的概念。

Pattern p = Pattern.compile("(.*?)  *(.*)");
Matcher m = p.matcher(s);
if (m.matches()) {
   String name = m.group(1);
   String value = m.groupo(2);
}

for (int i = 1; i<=m.groupCount(); i++) {
    System.out.println(m.group(i));
}
于 2013-04-25T18:16:22.287 回答
0

String.split()需要一个正则表达式,所以你可以简单地做String.split(" +").

于 2013-04-25T18:13:29.463 回答
0

您可以使用正则表达式来拆分字符串。

String.split(Regular Expression);

对于多个空格,您可以使用正则表达式:“ \\s+ ”,其中 's' 代表空格。

“==”运算符用来判断左右是否相等。对于String,它们实际上是Object,这意味着它们被视为引用(就像C中的指针一样)。

所以如果你想比较两个字符串的内容,你可以使用字符串的equals(String)方法。例如 str1.equals(str2)

于 2013-04-25T18:19:26.507 回答