为了账号安全,请及时绑定邮箱和手机立即绑定

反转屏幕,包括 null 和空字符串

反转屏幕,包括 null 和空字符串

UYOU 2023-06-28 16:12:34
我遇到这个问题,我必须反转出现的字符串的顺序。我尝试通过创建一个空字符串来反转字符串,然后使用 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


查看完整回答
反对 回复 2023-06-28
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信