我遇到这个问题,我必须反转出现的字符串的顺序。我尝试通过创建一个空字符串来反转字符串,然后使用 for 循环添加后面的字符。但是,它实际上不适用于 null。下面是我尝试过的代码。 public static String reverse (String str){ String reverse= ""; for(int i=str.length()-1; i>=0; i--){ reverse+=str.charAt(i); } return reverse; }这是测试仪。 String s1=null; System.out.println (reverse(s1));//null System.out.println (reverse(""));// empty string System.out.println (reverse("a"));//a System.out.println (reverse("abc"));//cba System.out.println (reverse("atoyota"));// atoyota System.out.println (reverse("atOyotA"));//AtoyOta System.out.println (reverse("dad"));//dad System.out.println (reverse("Dad"));// daD System.out.println (reverse("DaD"));// DaD我执行上面的代码得到的错误是 Exception in thread "main" java.lang.NullPointerExceptionat PalindromeLab_BB.reverse(PalindromeLab_BB.java:62)at PalindromeLab_BB.main(PalindromeLab_BB.java:5)任何人都知道出了什么问题,或者如何解决它?任何帮助将不胜感激 :)。
1 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
null只需在开头添加一个检查并设置str为 a Stringof null:
public static String reverse (String str){
//New code
if (str == null) {
str = "null";
}
String reverse = "";
for(int i = str.length() - 1; i >= 0; i--){
reverse += str.charAt(i);
}
return reverse;
}
空时输出:
图片
当然,您也可以对案例进行硬编码return "llun";,这样它实际上不会进入循环,或者return null;如果您想返回null自身而不是反转它:
if (str == null) {
return "llun";
//return null; //If you want to just return null instead
}
添加回答
举报
0/150
提交
取消