[英]Replace all UpperLetters in a string with a new String
我有一個UserTable格式的字符串。 我希望輸出為user_table。 基本上用“_”和字母替換所有大寫字母。 喜歡R=_R
。
我有這個代碼,它工作正常。
public static String getTableName(String clazz){
String name = (clazz.charAt(0)+"").toLowerCase();
for(int itr=1;itr<clazz.length();itr++){
char ch = clazz.charAt(itr);
if(ch >=97 && ch <=122)
name += ch;
else
name += ("_"+ ch).toLowerCase() ;
}
return name;
}
我只是想要,如果這可以以更整潔的方式完成。
建議:使用正則表達式,它使用下划線(不是在開頭,但因此負面看后面(?!^)
)前置大寫字符,將結果轉換為小寫:
String input = "UserTable";
String result = input.replaceAll("(?!^)([A-Z])", "_$1").toLowerCase();
System.out.println(result); // user_table
您可以使用StringBuilder
來實現此目的:
StringBuilder builder = new StringBuilder();
String input = "UserTable";
for (int i = 0; i < input.length(); i++) {
char ch = input.charAt(i);
if (i > 0 && Character.isUpperCase(ch)) {
builder.append('_');
}
builder.append(Character.toLowerCase(ch));
}
String result = builder.toString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.