2013-06-11 173 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 
相关问题