在java中查找大写单词

时间:2012-08-18 10:43:04

标签: java

如何提取两个或多个由大写字母分隔的单词,以大写字母开头,并将它们保存为java中的单个标记?

5 个答案:

答案 0 :(得分:2)

您可以使用以下内容作为起点:

String input = "This is a sentence with two Words with capital letters";
String[] words = input.split(" ");

for(String word : words)
{
    if(word.length() > 0 && Character.isUpperCase(word.charAt(0)))
    {
        System.out.println("Upper case: " + word);
    }
    else
    {
        // doesn't have upper case at beginning
    }
}

输出将是:

  

大写:这个

     

大写:单词

答案 1 :(得分:1)

您可以使用此正则表达式匹配任何以大写字母开头的单词:\b([A-Z]\w*?)\b

这个稍微修改过的版本只会匹配序列> 2:(\b[A-Z]\w*\b(?: (?![^A-Z]))?){2,}

我认为通过一些努力,正则表达式可以变得更小。但这会给你一些起点。


请尝试:http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester.html

答案 2 :(得分:1)

您可以使用此正则表达式在句子中查找多个单词,空格用作拆分字符,您可以添加其他单词。

((?<=\s)[A-Z][\w]*\s)+[A-Z][\w]*(?=\s)

答案 3 :(得分:0)

我希望这可以解决你的问题。

1.使用字符串函数

String word = "this is my content ";
        String[] splitWord;
        String capWord = "";
        splitWord = word.split(" ");
        for (int i = 0; i < splitWord.length; i++) {
           capWord = splitWord[i].substring(0, 1).toUpperCase() + splitWord[i].substring(1) + " ";
    System.out.println(capWord);
        }

2.使用WordUtils API

   String text="use this    text";
    String text1="use this TEXT";

    String word = WordUtils.capitalize(text);
    System.out.println(word);

    word = WordUtils.capitalizeFully(text1);
    System.out.println(word);

答案 4 :(得分:0)

正则表达式可能是一个不错的选择。

要匹配以大写字母开头的两个或多个单词的任何系列,那么您需要使用Matcher

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String[] args) {

        String passage = "I am at New South Welse at the moment";
        Pattern twoOrMoreWordsPattern= Pattern.compile("([A-Z][a-z]+ +){2,}");
        Matcher twoOrMoreWordsMatcher = twoOrMoreWordsPattern.matcher(passage);
        while (twoOrMoreWordsMatcher.find()){
            for(int i = 0; i < twoOrMoreWordsMatcher.groupCount(); i++){
                System.out.print(twoOrMoreWordsMatcher.group(i));
            }
        }
        System.out.println("");
    }

}

希望能有所作为并做你想做的事,如果没有,那么它就接近你想要的......