如何在使用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