2013-06-11 170 views
-10

我想用eyesOfTiger替換例如「老虎眼」,但我不知道確切的解決方案。用大寫字母替換「 - 」字母

如何用大寫字母替換「 - 」?

+8

仔細查看'String'類的方法。我相信它擁有完成這項任務所需的所有方法。 –

+0

我認爲你正在解決spoj問題? –

回答

7
public class Test { 

    public static void main(String[] args) { 

     String input = "eye-of-tiger"; 
     String modified = dashToUpperCase(input); 
     System.out.println(modified); 
    } 

    private static String dashToUpperCase(String input) { 

     StringBuilder result = new StringBuilder(); 
     boolean toUpper = false; 

     for (int i = 0; i < input.length(); i++) { 
      char c = input.charAt(i); 
      if (c == '-') { 
       toUpper = true; 
      } else { 
       result.append(toUpper ? Character.toUpperCase(c) : c); 
       toUpper = false; 
      } 
     } 

     return result.toString(); 
    } 
} 
+2

我喜歡這個答案,因爲它專注於替換' - '而不是將字符串拆分爲' - '並重新創建字符串。 – covertCoder

+0

爲了改善它,你可以使' - '動態字符來代替任何你想要的 – moeTi

0

試試這個了通用的解決方案:

String[] split = s.split("-"); 
    for(int i = 0; i < split.length; i++){ 
     split[i] = split[i].substring(0, 1).toUpperCase() + split[i].substring(1).toLowerCase(); 
    } 

    StringBuilder builder = new StringBuilder(); 
    for(String string : split) { 
     builder.append(string); 
    } 
+1

這會將第一個字符('e')轉換爲大寫。 – johk95

0

試試這個:

String s = "eyes-of-tiger"; 
    StringBuilder newString = new StringBuilder(); 
    String[] arr = s.split("-"); 
    boolean first = true; 
    for (String str : arr) { 
     if (first) { 
      newString.append(str); 
      first = false; 
      continue; 
     } 
     newString.append((str.substring(0,1).toUpperCase()) + str.substring(1)); 
    } 
    String result = newString.toString(); 
1
String str="eyes-of-tiger"; 
String[] strTokens = str.split("-"); 
str=strTokens[0]; 
for(int i=1;i<strTokens.length;i++) 
{ 
    str+= StringUtils.capitalize(strTokens[i]); 
} 
1
public static void main(String[] args) { 
    String coolSong = "eye-of-the-tiger"; 
    String[] words = coolSong.split(("-")); 
    StringBuilder result = new StringBuilder(); 

    result.append(words[0]); 
    for (int i = 1; i < words.length; i++) { 
     words[i] = words[i].substring(0, 1).toUpperCase() 
       + words[i].substring(1, words[i].length()); 
     result.append(words[i]); 
    } 

    System.out.println(result.toString()); 

} 

日期:

eyeOfTheTiger 
相關問題