如何提取两个或多个由大写字母分隔的单词,以大写字母开头,并将它们保存为java中的单个标记?
答案 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("");
}
}
希望能有所作为并做你想做的事,如果没有,那么它就接近你想要的......