2011-03-21 125 views
3

我做了一个类Anagrams,它写一个句子中的单词排列,当我运行编译的程序为java Anagrams“sentence1”“sentence2”...它应该生成每个句子的排列。我如何才能做到这一点?Java程序帮助

import java.io.*; 
import java.util.Random; 
import java.util.ArrayList; 
import java.util.Collections; 

public class Anagrams 
{ 

    ... 

    public static void main(String args[]) 
    { 
     String phrase1 = ""; 
     System.out.println("Enter a sentence."); 
     BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
     try { phrase1 = input.readLine(); } 
     catch (IOException e) { 
     System.out.println("Error!"); 
     System.exit(1); 
     } 

     System.out.println(); 
     new Anagrams(phrase1).printPerms(); 
    } 


} 

这是我到目前为止,我只需要它来“当我键入命令java字谜...... “sentece1”“SENTENCE2”的“SENTENCE1”” SENTENCE2运行...香港专业教育学院 已经使用它的javac Anagrams.java

+7

你能告诉我们你到目前为止,以及你卡在哪里? – rsp 2011-03-21 21:09:10

+2

在你的问题中,你说你会使用参数来传递sentence1和sentence2,但是在你的代码中,我发现你没有使用参数,而是等待用户输入。那么你的目标是什么? – RoflcoptrException 2011-03-21 21:26:32

+0

我的目标是使用参数,但我不知道我会怎么做1 ... n个参数。 – Homes 2011-03-21 21:35:20

回答

2

从您的评论编译我认为你唯一的问题是如何使用命令行参数来解决的任务是:

你的主要方法是这样看:

public static void main(String args[]) 

,但看起来应该是这样

你看,有保存命令行参数的字符串数组。因此,如果你有

java Anagrams sentence1 sentence2 

执行代码然后阵列具有长度2首先(args[0])有值sentence1并且在第二位置(args[1])有值sentence2

,打印所有的命令行参数的示例代码如下所示:

public static void main (String[] args) { 
     for (String s: args) { 
      System.out.println(s); 
     } 
    } 

现在你应该可以使用您的字谜算法对每个命令行参数。

+0

感谢我新来的Java,并没有知道这与它有任何关系。我现在明白了 – Homes 2011-03-21 21:50:06

0

下面是从命令行获取参数的简单示例。

请记住,如果您没有提供足够的参数,可以打开“IndexOutOfBoundsException”,因此请确保在您的代码中检查!

class ArgsExample { 
    public static void main(String[] args) { 
     System.out.println(args[0]); 
     System.out.println(args[1]); 

    } 

} 

C:\Documents and Settings\glow\My Documents>javac ArgsExample.java 

C:\Documents and Settings\glow\My Documents>java ArgsExample "This is one" "This 
is two" 
This is one 
This is two 

C:\Documents and Settings\glow\My Documents> 
0

Varargs将允许你使用一个方法签名串数量不确定的,如果这是你在找什么。否则,如果是将参数传递给main的问题,则Roflcoptr是正确的。