java - 如何打印格式正确的字符串
问题描述
我正在做测试驱动开发。所以我创建了一个需要向函数发送字符串数组的案例。该函数将检查数组是否有任何大写字母字符串。如果有,则需要将所有字符串打印为“ 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;
}
解决方案
如果需要检查字符串是否包含大写字母,则需要实现如下:
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;
推荐阅读
- c# - 将 Word DOM 结构复制为 C# 对象
- python-sphinx - Sphinx 代码块在 HTML 中奇怪地呈现
- apache - 如何制作 tumblr 风格的个人资料网址
- javascript - Programmatically editing the path of polyline leaves a ghost line
- apache-kafka - Kafka - 在 Kafka 集群中重试
- android - 如何打开“google.navigation:q=
“在安卓网络视图中? - ios - 将新子级添加到 Firebase 数据库
- amazon-web-services - “数据不足”对 ec2 状态检查意味着什么
- java - 如何将 CSS 文件设置为整个应用程序 JafaFX
- python - Python 使用类创建用户输入信息的“目录”时遇到问题