2010-10-17 62 views
2

因此,我的老师告诉我做一个字符串,使我输入的内容以相反顺序( )(例如,“你好,那里”变成“ereht olleh”)。到目前为止,我的工作是身体,我想出了这个如何完成反向字符串?

public class Main { 

/** 
* @param args the command line arguments 
*/  

    public static void main(String[] args) { 
    (The input needs to be in here)}} 



    public static String rev(String str) { 

    String reversed = "hello there"; 
    for (int i = 0; i < str.length(); i++) { 
     reversed = str.charAt(i) + reversed; 
    } 
    return reversed; 

我现在的问题是,我需要的公共静态无效的主要(字串[] args)下把,使其工作。是的,我明白这是家庭作业,我试图通过本书寻找帮助(没有运气)。我试着在网上寻找(没有运气感谢我对更先进的方法的一点理解)。我会感谢任何帮助,并提前感谢任何人。 我使用NetBeans,如果这将有助于任何。

回答

3

几件事情:

既然你要添加的字符以反白的字符串reversed它应该是一个空字符串入手:

String reversed = ""; 

要调用这个甲基od从main传递它需要被颠倒的字符串。喜欢的东西:

public static void main(String...args[]) { 
    System.out.println(rev("hello there")); 
} 

或者你可以阅读到被逆转从用户输入的字符串,然后把它传递给rev功能。

+0

非常感谢你。对于像我这样的初学者来说,它运作良好。 – 2010-10-17 07:26:39

6
public static String rev(String str) { 
    String reversed = ""; 
    for (int i = 0; i < str.length(); i++) { 
     reversed = str.charAt(i) + reversed; 
    } 
    return reversed; 
} 

public static void main(String[] args) { 
    if (args.length > 0) { 
    System.out.println(rev(args[0])); 
    } 
} 

阅读args数组来做到这一点。

2

为了使作业标签尽可能不透明,您应该至少重新检查您的初始值reversed。你拥有它的方式,你最终会得到除了期望的"ereht olleh"之外的东西。

至于你如何命令行获取的参数,下面的打印出所有参数,并会形成一个良好的基础,为自己的代码具体问题:

public static void main (String[] args) { 
    for (int i = 0; i < args.length; i++) 
     System.out.println (args[i]); 
    } 
} 
0

读控制台输入:

public static void main(String[] args) { 
    String curLine = ""; // Line read from standard in 
    System.out.println("Enter a line of text"); 
    InputStreamReader converter = new InputStreamReader(System.in); 
    BufferedReader in = new BufferedReader(converter); 
    curLine = in.readLine(); 

    System.out.println(rev(curLine)); 
}