Java:按特殊字符和空格拆分字符串

时间:2014-05-09 02:15:27

标签: java regex string

我是java的新手,我必须为一个短语创建一个猪拉丁语翻译器。这是我现在的代码,以便我可以分割用户输入的短语。抱歉格式不正确。

String english = "Queen of all reptiles";
String[] words = english.split ("\\s+"); 
for (int i = 0 ; i < words.length ; i++) {
    System.out.println (words [i]);
}

此代码的输出为:

Queen   
of    
all   
reptiles   

但是,我想用空格和特殊字符拆分String english,以便

String english  = "Queen. of reptiles."

它会输出:

Queen   
.   
of   
reptiles  
.

我尝试这样做:String[] words = english.split ("[^a-zA-Z0-9]", "");但它不起作用。

3 个答案:

答案 0 :(得分:2)

您可以在字符串案例中使用以下内容。

String s  = "Queen. of reptiles.";
String[] parts = s.split("(?=\\.)|\\s+");
System.out.println(Arrays.toString(parts));

输出

[Queen, ., of, reptiles, .]

答案 1 :(得分:0)

似乎有人讨论在这里使用split和look-behinds实现这个目标:

How to split a string, but also keep the delimiters?

答案 2 :(得分:0)

正如Luiggi Mendoza在他的评论中所描述的那样,这将如你所描述的那样起作用:

String english = "Queen. of reptiles.";
Pattern p = Pattern.compile("\\w+|\\.");
Matcher m = p.matcher(english);

do {
   if (m.find()) {
      System.out.println(m.group());
   }
} while (!m.hitEnd());