2017-03-04 47 views
-1

我的字符串反转代码有一个小问题,我似乎无法修复它。我做了一个不同的工作方式,涉及一个for循环,并且这似乎工作正常。但是,当我运行这段代码时,它总是在反转的String之前给我一个“null”。例如,当我运行这个并输入“StackOverflow”时,我得到了null wolfrevOkcatS的输出(没有空格)。我不明白为什么会发生这样的错误,所以我还添加了一个“null”检查器,它似乎没有工作。对于这个空检查器,我把字符串转换成一个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

'reversed'为null。 'static String reversed =“”;'应该做这个工作。 –

+0

这是什么复制? –

+0

这甚至不接近重复,请检查实际问题。 @Jarrod Roberson –

回答

-1

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

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