2017-09-26 32 views
0

我想更改使用下劃線作爲字每一個詞,沒有下劃線,但以一個大寫Java全部替換:如何在下劃線後改變每個字母?

例子:new_york - >紐約

到目前爲止我的解決辦法是寫的每一封信一條線,這是不非常高效:

mySolution = mySolution.replaceAll("_a", "A"); 

編輯:這個問題是關於在一行中使用ReplaceAll,因此與其他問題無關。我可以管理編寫一個「長」程序,但我想大多數用戶會很樂意爲這個問題得到實際的答案。

+0

見https://stackoverflow.com/questions/3618733。 –

+1

@WiktorStribiżew實際上是重複的,目標問題提供適用的本地和第三方解決方案。 – Mena

+1

你只需要在'replaceAll()'中使用正則表達式,比如'mySolution.replaceAll(「_([a-zA-Z] {1})」,「$ 1」);'。 –

回答

0
public class HelloWorld { 

    public static void main(String[] args) { 
     System.out.println(convert("Hello W_o_rld_")); 
    } 

    static String convert(String s) { 
     StringBuilder sc = new StringBuilder(); 
     for (int i = 0; i < s.length() - 1; i++) { //to avoid _ at last index 
      if (s.charAt(i) == '_') { 
       sc.append((Character.toUpperCase(s.charAt(i + 1)))); 
       i++; 

      } else { 
       sc.append(s.charAt(i)); 
      } 
     } 
     return sc.toString(); 
    } 
} 

迭代通過字符串的字符和修改下一個字符後_

+0

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 –

+0

@JuanCarlosMendoza難道沒有那個 – Optional

+0

原來的答案會跳過目標'String'的最後一個字符,並且不能連續使用下劃線(除其他外)。 – Mena

相關問題