java regex:使用一定数量的字符大写单词

时间:2015-06-05 16:44:34

标签: java regex string character

我正在尝试将字符大小超过5个字符。

我能够使用.length检索大于5个字符的单词数量,我可以排除大于5个字符的单词,但我无法将它们大写。

实施例。输入:"我喜欢吃馅饼"

实施例。输出:"我喜欢吃馅饼"

这是我的代码:

 public static void main(String[] args) {
    String sentence = "";
    Scanner input = new Scanner(System.in);

    System.out.println("Enter a sentence: ");
    sentence = input.nextLine();
    String[] myString = sentence.split("\\s\\w{6,}".toUpperCase());
     for (String myStrings : myString) {
         System.out.println(sentence);
         System.out.println(myStrings);
         }

3 个答案:

答案 0 :(得分:1)

将输入句子拆分为空格作为分隔符,如果长度大于5,则使用intiCap方法:

PS:要用StringBuilder替换的System.out.print。

String delim = " ";
String[] myString = sentence.split(delim);

for (int i = 0; i < myString.length; i++) {
    if (i != 0) System.out.print(delim);

    if (myString[i].length() > 5)
        System.out.print(intiCap(myString[i]));
    else
        System.out.print(myString[i]);
}


private static String intiCap(String string) {
    return Character.toUpperCase(string.charAt(0)) + string.substring(1);
}

答案 1 :(得分:1)

$("#" + thisid).parent().find("#error").html("Error: " + positionError.message + "<br />")

答案 2 :(得分:0)

您可以使用以下(短而甜:P):

Pattern p = Pattern.compile("(?=\\b\\w{6,})([a-z])\\w+");
Matcher m = p.matcher(sentence);
StringBuffer s = new StringBuffer();
while (m.find()){
    m.appendReplacement(s, m.group(1).toUpperCase() + m.group(0).substring(1));
}
System.out.println(s.toString());

请参阅Ideone Demo