3

任何人都可以就包含撇号的驼峰式字符串提供帮助,因此我不希望撇号后面的下一个字母大写。

我的代码从一个 txt 文件中读取,然后相应地处理它。

例如“MATTHEW SMITH”将被转换为“Matthew Smith”但是“MATTHEW S'MITH”将被转换为“Matther S'Mith”,而它应该是“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)?";

提前致谢。

4

1 回答 1

1

试试这个正则表达式

public static final String CAMEL_CASE_REG_EXP = "\\s*\\S+\\s*";

它产生

Matthew S'mith
于 2013-05-21T05:51:25.250 回答