基本字符串反转器

时间:2017-03-04 23:47:28

标签: java string java.util.scanner reverse

我的String Reverse代码存在轻微问题,我似乎无法修复它。我做了一个不同的工作方式,涉及一个for循环,这似乎工作正常。但是,当我运行此代码时,它总是在反向字符串之前给出一个“null”。例如,当我运行它并输入“StackOverflow”时,我得到一个null wolfrevOkcatS的输出“(没有空格)。我不明白为什么会发生这样的错误,所以我还添加了一个”null“检查器,似乎没有用。对于这个null检查器,我将char转换为Ascii值,然后将其放入我的反向字符串中,然后检查它是否为0.(ascii值为null)但是,这似乎不起作用所以我做了一些研究,在Overflow上找不到任何东西,所以决定问这个问题。如果这是一个非常“愚蠢”的问题,请提前道歉,因为我对java很新,不知道是谁问 提前致谢, - 新手Java编码器

import java.util.Scanner;
public class StringReverser
{
  static String input, reversed;
  int i;
  public static void main(String[] args)
  {
    StringReverser ansh = new StringReverser();
    ansh.grab();
    ansh.reverse(input);
  }
  public void grab()
  {
    System.out.println("Enter a word to be reversed: ");
    Scanner kys = new Scanner(System.in);
    input = kys.next();
    i = input.length();
  }
  public void reverse(String word)
  {
    if(i == 0)
    {
      System.out.println(reversed);
    }
    else
    {
      //if((int)(word.charAt(i-1)) == 0)
        //{i--; reverse(input);}
      reversed+=word.charAt(i-1);
      i--; reverse(input);
    }

  }
}

1 个答案:

答案 0 :(得分:-1)

这是因为reserved默认初始化为null

if(i == 0)
{
  System.out.println(reversed);
}