如何在使用JAVA的String的大写字母之前插入空格?

我有一个字符串"nameOfThe_String"。这里字符串的第一个字母应该是大写字母。所以我用如何在使用JAVA的String的大写字母之前插入空格?

String strJobname="nameOfThe_String"; strJobname=strJobname.substring(0,1).toUpperCase()+strJobname.substring(1);

现在,我需要之前大写字母插入的空间。所以,我用

strJobname=strJobname.replaceAll("(.)([A-Z])", "$1 $2");

但在这里我需要的输出"Name Of The_String"'_'后我不需要任何空间,即使S是大写字母。

我该怎么做?请帮我解决一下这个。

回答:

strJobname=strJobname.replaceAll("([^_])([A-Z])", "$1 $2"); 

^字符作为方括号中的第一个字符表示:不是这个字符。所以,用第一个支架组说:任何不是_的字符。 但是,请注意您的正则表达式也可能会在连续的大写字母之间插入空格。

回答:

随着查找变通,你可以使用:

String strJobname="nameOfThe_String"; 

strJobname = Character.toUpperCase(strJobname.charAt(0)) +

strJobname.substring(1).replaceAll("(?<!_)(?=[A-Z])", " ");

//=> Name Of The_String

RegEx Demo

回答:

这里有可能满足您的要求以不同的方式。

public static void main(String[] args) { 

String input;

Scanner sc = new Scanner(System.in);

input = sc.next();

StringBuilder text = new StringBuilder(input);

String find = "([^_])([A-Z])";

Pattern word = Pattern.compile(find);

Matcher matcher = word.matcher(text);

while(matcher.find())

text = text.insert(matcher.end() - 1, " ");

System.out.println(text);

}

以上是 如何在使用JAVA的String的大写字母之前插入空格? 的全部内容, 来源链接: utcz.com/qa/261086.html

回到顶部