首页 > 解决方案 > 尝试以墨西哥波浪样式模式将字符更改为大写

问题描述

我正在尝试以墨西哥波浪样式模式一次获取一个字符串并将一个字符转换为大写字母。这就是它应该的样子

Input: hello

Output: Hello
        hEllo
        heLlo
        helLo
        hellO

但是,我得到的只是

Input: hello

Output: hello
        hello
        hello
        hello
        hello

这就是我的循环当前的样子

for(int i=0;i<s.length();i++)
   {
     a1=s.charAt(i);
     a2=Character.toUpperCase(a1);
     System.out.println(s);
    }

s 是字符串,a1 和 a2 是两个随机字符,用于存储当前值。

我不熟悉“Character.toUpperCase”,但我在网上找到了它,希望它有助于解决我的问题,但它似乎不是

标签: javaloopsmethods

解决方案


You are printing the same String. To get the desired output, you can do something like following,

String s = "hello";
for(int i=0;i<s.length();i++)
{
    char a1 = s.charAt(i);
    char a2 = Character.toUpperCase(a1);
    if (i == 0)
        System.out.println(a2 +s.substring(i+1));
    else
        System.out.println( s.substring(0,i) +a2 +s.substring(i+1));
}

If yo want to skip if-else condition,

String s = "hello";
System.out.println(s.charAt(0) +s.substring(1)); // for first char
for(int i=1;i<s.length();i++) // for rest of the chars
{
    char a1 = s.charAt(i);
    char a2 = Character.toUpperCase(a1);
    System.out.println( s.substring(0,i) +a2 +s.substring(i+1));
}

推荐阅读