【问题标题】:Replace "-" with capital Letters [closed]用大写字母替换“-”[关闭]
【发布时间】:2013-06-07 11:07:06
【问题描述】:

我想用eyesOfTiger 替换例如“eyes-of-tiger”,但我不知道确切的解决方案。

如何将“-”替换为大写字母?

【问题讨论】:

  • 仔细查看String类的方法。我相信它拥有这项任务所需的所有方法。
  • 我认为您正在解决 spoj 问题?

标签: java regex eclipse


【解决方案1】:
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】:
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]);
}

【讨论】:

    【解决方案3】:
    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
    

    【讨论】:

      【解决方案4】:

      试试这个通用解决方案:

      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);
          }
      

      【讨论】:

      • 这会将第一个字符 ('e') 转换为大写。
      【解决方案5】:

      试试这个:

          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();
      

      【讨论】:

        猜你喜欢
        • 2014-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-20
        • 1970-01-01
        • 2019-08-08
        • 2021-07-30
        • 1970-01-01
        相关资源
        最近更新 更多