基本字符串反转器
Basic String Reverser
我的 String Reverse 代码有一个小问题,我似乎无法修复它。我采用了一种不同的工作方式,涉及一个 for 循环,这似乎工作正常。但是,当我 运行 这段代码时,它总是在反转字符串之前给我一个 "null" 。例如,当我 运行 这个并输入 "Whosebug" 时,我得到 null wolfrevOkcatS" 的输出(没有 Space)。我不明白为什么会发生这样的错误,所以我还添加了一个"null"检查器,它似乎没有工作。对于这个空检查器,我将char转换为Ascii值,然后将其放入我的反向字符串中,然后检查它是否为0。(ascii value of null) 但是,这似乎不起作用,所以我做了一些研究,但在 Overflow 上找不到任何东西,所以决定问这个问题。如果这是一个非常 "dumb" 的问题,请提前道歉, 因为我对 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);
}
}
}
那是因为reserved
默认初始化为null
。
if(i == 0)
{
System.out.println(reversed);
}
我的 String Reverse 代码有一个小问题,我似乎无法修复它。我采用了一种不同的工作方式,涉及一个 for 循环,这似乎工作正常。但是,当我 运行 这段代码时,它总是在反转字符串之前给我一个 "null" 。例如,当我 运行 这个并输入 "Whosebug" 时,我得到 null wolfrevOkcatS" 的输出(没有 Space)。我不明白为什么会发生这样的错误,所以我还添加了一个"null"检查器,它似乎没有工作。对于这个空检查器,我将char转换为Ascii值,然后将其放入我的反向字符串中,然后检查它是否为0。(ascii value of null) 但是,这似乎不起作用,所以我做了一些研究,但在 Overflow 上找不到任何东西,所以决定问这个问题。如果这是一个非常 "dumb" 的问题,请提前道歉, 因为我对 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);
}
}
}
那是因为reserved
默认初始化为null
。
if(i == 0)
{
System.out.println(reversed);
}