java - 根据大小写交替生成字母的句子

标签 java

我在java中实现了一个程序,它允许使用以下方式的链生成此继承:

输入:

世界你好

心情好

连续链:

你好,世界

良好的氛围

尝试将字符串输入转换为带有分割的数组类型字符串,然后使用 if,检查偶数位置,并转换该小写位置的字母,对于奇数位置,相同,只有转换为大写字母...问题是数组还保存空格,这会导致序列滞后,我无法删除它,因为我必须使用 inputtext 格式显示文本,我能做什么如何在不改变其所具有的空格和换行符的情况下完成继承?

程序给我:

Hello World

良好的氛围

代码:

public String cambiar(String cadena1)
{
cambiar= cadena1.split("");

for(int i=0; i<cambiar.length; i++)
{
    if(i%2==0)
    {
        cambiar[i]=cambiar[i].toLowerCase();
    }
    else
    {
        cambiar[i]=cambiar[i].toUpperCase();
    }
}
 for(int i=0; i<cambiar.length; i++)
{
    textocambiado+=cambiar[i];

}

return textocambiado;
   }

注意:我不允许使用 arraylist

问题:https://drive.google.com/open?id=15VOlyhGtyvZ_0vcFype2o1sjiKkj7Hzn

最佳答案

您的想法是正确的,您只需跳过增加非字母的计数器即可。

您可以考虑的另外两项性能改进:

  • 使用 StringBuilder 而不是连接到字符串
  • 使用翻转的 boolean,而不是检查计数器 i 是奇数还是偶数:

 

public String cambiar(String input) {
    boolean isLower = true;
    StringBuilder result = new StringBuilder(input.length());
    for (int i = 0; i < input.length(); ++i) {
        char ch = input.charAt(i);
        if (Character.isLetter(ch)) {
            if (isLower) {
                result.append(Character.toLowerCase(ch));
            } else {
                result.append(Character.toUpperCase(ch));
            }
            isLower = !isLower;
        } else {
            result.append(ch);
        }
    }

    return result.toString();
}

关于java - 根据大小写交替生成字母的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824482/

相关文章:

java - 如何从Java传递sql命令

java - 一个 spring 集成管道中的多个数据源?

java - 如何重定向到过滤器中的引荐来源网址?

java - 适用于 Java EE 和 hibernate 的 Maven Artifact

java - HTmlUnit 不抓取整个页面

java - spring-boot-starter-web 和 spring-boot-starter-webflux 不能一起工作吗?

java - 使用 Wrapper 类会增加对象的大小?

java - Kotlin 函数类型在运行时的 Java 类型是什么?

java - 执行目标org.codehaus.mojo :findbugs-maven-plugin:3. 0.5的findbugs:findbugs失败:Java返回:1

java - 有没有办法将 Stream 的结果转换为 Array 并迭代 Array 元素?