Java程序帮助

时间:2011-03-21 21:05:07

标签: java

我创建了一个Anagrams类,它在一个句子中写出单词的排列,当我运行编译的程序时,java Anagrams“sentence1”“sentence2”......它应该生成每个句子的排列。我怎么能这样做呢?

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();
    }


}

这是我到目前为止我只需要在“sentence1”“sentence2”上运行... 当我输入命令java Anagrams“sentece1”“sentence2”... 我已经使用javac Anagrams.java

编译了它

3 个答案:

答案 0 :(得分:2)

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

您的主要方法如下:

public static void main(String args[])

但应该看起来像这样

public static void main(String[] args)

您会看到有一个包含命令行参数的字符串数组。因此,如果您使用

执行代码
java Anagrams sentence1 sentence2

然后数组的长度为2.首先(args[0])有值sentence1,第二位(args[1])有值{{1 }}

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

sentence2

现在,您应该能够为每个命令行参数使用anagram算法。

答案 1 :(得分: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>

答案 2 :(得分:0)

Varargs允许您在方法签名中使用不确定数量的字符串,如果这是您正在寻找的。否则,如果将参数传递给main,Roflcoptr是正确的。