猿问

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

我遇到这个问题,我必须反转出现的字符串的顺序。


我尝试通过创建一个空字符串来反转字符串,然后使用 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.NullPointerException

at PalindromeLab_BB.reverse(PalindromeLab_BB.java:62)

at PalindromeLab_BB.main(PalindromeLab_BB.java:5)

任何人都知道出了什么问题,或者如何解决它?


任何帮助将不胜感激 :)。


UYOU
浏览 115回答 1
1回答

慕田峪7331174

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} 
随时随地看视频慕课网APP

相关分类

Java
我要回答