【发布时间】:2013-05-21 05:30:10
【问题描述】:
任何人都可以就包含撇号的驼峰式字符串提供帮助,因此我不希望撇号后面的下一个字母大写。
我的代码从一个 txt 文件中读取,然后进行相应的处理。
例如 “MATTHEW SMITH”将转换为“Matthew Smith” 然而 “MATTHEW S'MITH”应该是“S'mith”时会被转换为“Matther S'Mith”
public static String toCamelCase(String tmp){
Pattern p = Pattern.compile(CAMEL_CASE_REG_EXP);
Matcher m = p.matcher(tmp);
StringBuffer result = new StringBuffer();
String word;
while (m.find())
{
word = m.group();
result.append(word.substring(0,1).toUpperCase()+word.substring(1).toLowerCase());
}
return result.toString();
}
public static final String CAMEL_CASE_REG_EXP = "([0-9]+)?([a-zA-Z]+)(\\')?(\\-)?(\\s)?";
提前致谢。
【问题讨论】:
-
所以您实际上想要“O'CONNOR”解析为“O'connor”而不是“O'Connor”?我理解希望 "YOU'RE" 解析为 "You're",但我想知道这是否有点复杂——您需要一个温和的条件来确定何时适合在撇号后大写,以及何时它不是。
标签: java regex case camelcasing