有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java基本字符串反转器

我的字符串反向代码有一个小问题,我似乎无法修复它。我已经做了一种不同的工作方式,包括for循环,而且似乎工作得很好。但是,当我运行这段代码时,它总是在反转的字符串之前给我一个“null”。例如,当我运行此命令并输入“StackOverflow”时,我得到一个null wolfrevOkcatS(没有空格)的输出。我不明白为什么会发生这样的错误,所以我还添加了一个“null”检查器,它似乎不起作用。对于这个null检查器,我将字符转换为Ascii值,然后将其放入反向字符串中,然后检查它是否为0。(null的Ascii值)然而,这似乎不起作用,所以我做了一些研究,并没有发现任何关于溢出,所以决定问这个问题。抱歉,如果这是一个非常“愚蠢”的问题,请提前道歉,因为我对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) 个答案

  1. # 1 楼答案

    这是因为默认情况下reserved被初始化为null

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