我的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);
}
}
}
答案 0 :(得分:-1)
这是因为reserved
默认初始化为null
。
if(i == 0)
{
System.out.println(reversed);
}