首页 > 解决方案 > 如何打印格式正确的字符串

问题描述

我正在做测试驱动开发。所以我创建了一个需要向函数发送字符串数组的案例。该函数将检查数组是否有任何大写字母字符串。如果有,则需要将所有字符串打印为“ name , name, name 和 name 太棒了”。所以在最后一个之前应该放一个“and”。

它有时会给我死代码错误,因为还有其他情况可能会干扰这种情况的执行。

测试用例

@Test
    void testAcceptsAJumbleOfUpperCaseAndLowerCase() {
            theAmazingPeter obj = new theAmazingPeter();             
            String[] arr = {"Peter","GUNEET"};
            String result = obj.AmazingPerson(arr);
            assertEquals("Peter, and GUNEET are amazing",result);
        }
    }

陈述

else {
    for (int i = 0; i < names.length; i++) {
        if (names.length >= 1 && names[i].equals(names[i].toUpperCase())) {
            if (i > 0) {
                sb.append(", ");
                if (i == names.length - 1) {
                    sb.append("and ");
                }
            }
            sb.append(names[i]);
        }
        System.out.println(sb.toString() + " are amazing");
    }
    String result = sb.toString() + " are amazing";
    return result;
}

标签: javaeclipsetestingjunit

解决方案


如果需要检查字符串是否包含大写字母,则需要实现如下:

    StringBuffer sb = new StringBuffer();
    char ch;

    for (int i = 0; i < names.length; i++) {
        if (Character.isUpperCase(names[i].charAt(0))) {
            if (i == names.length - 1) {
                sb.append(" and " + names[i]);
            } else if (i == names.length - 2) {
                sb.append(names[i]);
            } else {
                sb.append(names[i] + ", ");
            }
        }
    }
    System.out.println(sb.toString() + " are amazing");
    String result = sb.toString() + " are amazing";
    return result;

推荐阅读