我正在尝试练习 QA 面试,我想处理尽可能多的测试用例。我相信我的方法适用于所有情况,除非输入为 null
我不确定如何处理该异常。在代码运行之前,编译器会先给我一个错误。所以我不确定如何处理该异常。我四处阅读,不推荐 catch
ing NullPointerException
。我将如何处理 null
输入。另外如果有谁能想到其他的测试用例,我也很乐意测试看看!
这是我的测试用例:
""
"abcdef"
"abbbba"
null
不太确定如何处理
转义字符
"\n" --> "n\"
"\t" --> "t\"
特殊字符如
áe --> eá
代码:
public static String reverseStr(String str) {
int len = str.length();
if (len <= 0) {
return "Empty String";
}
char[] strArr = new char[len];
int count = 0;
for (int i = len - 1; i >= 0; i--) {
strArr[count] = str.charAt(i);
count++;
}
return new String(strArr);
}
经过进一步的建议,这里是更新的代码:
public static String reverseStr(String str) {
if ( str == null ) {
return null;
}
int len = str.length();
if (len <= 0) {
return "";
}
char[] strArr = new char[len];
int count = 0;
for (int i = len - 1; i >= 0; i--) {
strArr[count] = str.charAt(i);
count++;
}
return new String(strArr);
}
最佳答案
如果string为null,编译器不会报错,但运行代码时会抛出NullPointerException。你的 reverseStr 方法可以检查
if ( str == null ) {
return "null string passed in";
}
或者你可以做类似的事情
int len = (str != null) ? str.length() : 0
现在 null 和空字符串的长度都为 0。这取决于您是否要区别对待 null 和 empty。
关于java - 反转字符串的测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368754/