如何用java中的substring和indexof的方法把一句英文句子中每个单词的首字母转化成大

如何用java中的substring和indexof的方法把一句英文句子中每个单词的首字母转化成大写字母

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class testFirstUpper {
public static void main(String[] args) {
String str = "hello,every one. my name is LiLei. nice to meet you! see you.";
System.out.println(new testFirstUpper().retrunFirstUpper(str));
}
private String retrunFirstUpper(String str) {
String[] strs = splitKeepPoint(str);
String resultStr = "";
for (int i = 0; i < strs.length; i++) {
char[] cs = strs[i].trim().toCharArray();
cs[0] -= 32;//ASCLL码表,大小写差32
resultStr += String.valueOf(cs);
if (i > 1)//句首加一个空格
resultStr += " ";
}
return resultStr;
}
//按标点符号分割字符串,并保留句尾符号
private String[] splitKeepPoint(String str) {
/* 正则表达式:句子结束符 */
String regEx = "[.?!]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
/* 按照句子结束符分割句子 */
String[] words = p.split(str);
/* 将句子结束符连接到相应的句子后 */
if (words.length > 0) {
int count = 0;
while (count < words.length) {
if (m.find()) {
words[count] += m.group();
}
count++;
}
}
return words;
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答