java - 如何返回字符大小写交替形成的字符串?

标签 java

该方法应该返回通过交替指定字符串中的字符大小写形成的字符串。返回字符串中的第一个字符为小写,第二个字符为大写,第三个字符为小写,第四个字符为大写,依此类推。 示例:tOrOnTo。

public static String alternatingCaps(String s) {
    for (int i = 0; i < s.length(); i++) {
        if (i % 2 == 0) {
            System.out.print(Character.toUpperCase(s.charAt(i)));
        } else {
            System.out.print(Character.toLowerCase(s.charAt(i)));
        }
    }
    return s;
}

我希望它能够工作,但它始终未能通过 JUnit 测试。

最佳答案

IDK,为什么所有其他解决方案都错过了一个必要条件(第一个字符必须是小写,0%2 == 0)。您的测试代码仍然会失败。

正确的解决方案是,

 public static String alternatingCaps(String s) {
    StringBuilder result = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
      if (i % 2 == 0) {
        result.append(Character.toLowerCase(s.charAt(i)));
      } else {
        result.append(Character.toUpperCase(s.charAt(i)));
      }
    }
    return result.toString();
 }
<小时/>

PS:将方法调用 toUpperCasetoLowerCase 交换到其他答案上以获得正确的解决方案。

关于java - 如何返回字符大小写交替形成的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875239/

相关文章:

java - 将数组转换为更小的数组

java - 如何使 java 类在运行时根据需要表现得像普通对象和对象列表?

java - 检索数据时保证缓存命中

java - 使用 Google Play 服务作为 Android 服务,随时从任何 Activity 中获取位置

java - 无需 ?ln=xxx 从 JS 访问 JSF 资源库

java - 并发网络爬虫通常将访问过的 URL 存储在并发映射中,还是使用同步来避免两次抓取相同的页面?

java - 温度。变量或方法调用?以及文字变量或等效变量?

java - 选择对象后更新同一查询中的对象

Java XML 解析器无需过多内存分配

java - 输出文本和输入文本编辑