用大写字母替换“-”[关闭]

Posted

技术标签:

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

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

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

【问题讨论】:

仔细查看String类的方法。我相信它拥有这项任务所需的所有方法。 我认为您正在解决 spoj 问题? 【参考方案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();

【讨论】:

以上是关于用大写字母替换“-”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用小写字母替换大写

怎样用WPS替换\后面的英文,不能用任意字母,因为前面有要保留的字母。

用随机字母替换字符串中的任意 3 个字母

根据具有 Character 类的字母,用数字替换字符串中的字母

Wps文字替换功能,怎么替换指定字母后面的回车符,例如只替换选择题ABCD四行后面的回车符为制表符

用 gsub 替换带有重音符号的多个字母