簡體   English   中英

用新String替換字符串中的所有UpperLetters

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM