将字符串拆分为单个单词Java

时间:2012-07-30 16:52:11

标签: java

我想知道如何将一个大字符串拆分成一系列较小的字符串或单词。 例如:

  

我想遛狗。

我想要一个字符串:"I", 另一个字符串:"want"等。

我该怎么做?

14 个答案:

答案 0 :(得分:66)

使用split()方法

<强>例如

String s = "I want to walk my dog";
String[] arr = s.split(" ");    

for ( String ss : arr) {
    System.out.println(ss);
}

答案 1 :(得分:50)

作为一个更通用的解决方案(但仅限ASCII!),要包括单词之间的任何其他分隔符(如逗号和分号),我建议:

String s = "I want to walk my dog, cat, and tarantula; maybe even my tortoise.";
String[] words = s.split("\\W+");

正则表达式意味着分隔符将是任何不是单词[\ W]的东西,至少有一个[+]的组。因为[+]是贪婪的,所以需要例如';'和''作为一个分隔符。

答案 2 :(得分:25)

正则表达式也可用于分割单词。

\w可用于匹配单词字符([A-Za-z0-9_]),以便从结果中删除标点符号:

String s = "I want to walk my dog, and why not?";
Pattern pattern = Pattern.compile("\\w+");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出:

I
want
to
walk
my
dog
and
why
not

请参阅Pattern

的Java API文档

答案 3 :(得分:8)

如果您的短语包含突出显示的字符,请查看我的other answer

String[] listeMots = phrase.split("\\P{L}+");

答案 4 :(得分:3)

另一种方法,使用StringTokenizer

String s = "I want to walk my dog";
StringTokenizer tokenizer = new StringTokenizer(s);

while(tokenizer.hasMoreTokens()) {
    System.out.println(tokenizer.nextToken());
}

答案 5 :(得分:2)

您可以使用split(" ")类的String方法,并将每个单词作为下面给出的代码获取:

String s = "I want to walk my dog";
String []strArray=s.split(" ");
for(int i=0; i<strArray.length;i++) {
     System.out.println(strArray[i]);
}

答案 6 :(得分:1)

使用split()

String words[] = stringInstance.split(" ");

答案 7 :(得分:1)

要在单词之间包含任何分隔符(除了所有小写和大写字母之外的所有内容),我们可以这样做:

String mystring = "hi, there,hi Leo";
String[] arr = mystring.split("[^a-zA-Z]+");
for(int i = 0; i < arr.length; i += 1)
{
     System.out.println(arr[i]);
}

这里的正则表达式意味着分隔符将是不是大写或小写字母[^a-zA-Z]的任何东西,至少有一个[+]组。

答案 8 :(得分:1)

StringTokenizer separate = new StringTokenizer(s, " ");
String word = separate.nextToken();
System.out.println(word);

答案 9 :(得分:0)

你可以使用Apache commons&#39; StringUtils类

    String[] partsOfString = StringUtils.split("I want to walk my dog",StringUtils.SPACE)

答案 10 :(得分:0)

此正则表达式将按空格,制表符,换行符之类的空格分割单词:

String[] str = s.split("\\s+");

答案 11 :(得分:0)

Java String split() 方法示例

 public class SplitExample{  
        public static void main(String args[]){  
            String str="java string split method";  
            String[] words=str.split("\\s");//splits the string based on whitespace  
     
            for(String word:words){  
                System.out.println(word);  
            }  
        }
    }

答案 12 :(得分:0)

class test{
           
    public static void main(String[] args){
                StringTokenizer st= new StringTokenizer("I want to walk my dog.");
                
                while (st.hasMoreTokens())
                    System.out.println(st.nextToken());
         
            }
        }

答案 13 :(得分:-1)

String [] str = s.split(“ [^ a-zA-Z] +”);