用java写代码每个单词首字母大写 (2)数字与字母间用“_”分开 (3)单词间多个空格压缩为一个空格
时间: 2023-05-28 08:02:51 浏览: 116
假设给定一个字符串变量str,代码如下:
```
String str = "this is a SAMPLE String 123";
str = str.replaceAll("\\s+", " "); // 压缩多余空格为一个空格
String[] words = str.split(" ");
StringBuilder sb = new StringBuilder();
for (String word : words) {
// 单词首字母大写
sb.append(Character.toUpperCase(word.charAt(0))).append(word.substring(1));
// 数字与字母间添加"_"
if (word.matches(".*\\d+.*")) { // 判断单词中是否含有数字
sb.append("_");
}
sb.append(" ");
}
str = sb.toString().trim();
```
解释如下:
第一行定义了一个字符串变量str,待处理的字符串为"this is a SAMPLE String 123"。
第二行使用正则表达式替换多余空格,将多个空格压缩为一个空格。
第三行将处理后的字符串按空格分割为单词,存储在字符串数组words中。
第四行创建一个StringBuilder对象,用于拼接处理后的字符串。
第五至八行遍历单词数组,对每个单词进行处理:
首先将单词的首字母转为大写,然后将其余字母添加到StringBuilder对象中;
接着判断单词中是否含有数字,如果有则在单词最后添加"_";
最后在单词后添加一个空格,以便下一个单词的拼接。
第九行将拼接好的字符串转为String类型,然后去掉首尾的空格,即为最终结果。
注:以上代码中的正则表达式"\\s+"表示匹配多个空格。
阅读全文