0
import java.util.Scanner;

public class WordScrambler 
{
    public String prefix, inner, postfix, newword;


    public static void main(String[] args) 
    {
        Scanner sc = new Scanner (System.in);
        String words = sc.nextLine();
        System.out.println(words);
    }


public void Scrambler()

}

String [] words = words.split(" ");

}

}

我真的不明白如何将我的变量“单词”放入我的 scramble 方法中,这样我就可以将我放入的每个单词拆分成单独的字符串,我这样做时是否只是声明了一个新的数组单词?我如何从上面获取该变量。另外,我的 system.out.println 只是检查我的扫描仪是否工作。或者我做得对吗?它实际上是在拆分单词吗?

4

3 回答 3

0

您似乎只是想将变量从一种方法传递给另一种方法。

旁注:在 Java 中,方法名称以小写字母开头,通常是动词:scramble 不是 Scrambler

在:

public static void main(String[] args) 
{
    Scanner sc = new Scanner (System.in);
    String words = sc.nextLine();
    System.out.println(words);
}

您已经获得了输入,但仍然没有任何地方可以发送它,因为您还没有创建 WordScrambler 的实例。

所以,让我们做一个:

WordScrambler wordScrambler = new WordScrambler();

好的,现在你可以使用 scramble 方法了,所以

wordScrambler.scramble( words )

会让事情动起来

现在,您需要在 scramble 中处理该字符串(在您修复方法声明以接受字符串参数之后),例如拆分它、混淆单词并输出结果。

于 2013-11-09T01:24:43.633 回答
0
import java.util.Scanner;

public class WordScrambler {

    public String prefix, inner, postfix, newword;

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String words = sc.nextLine();
        WordScrambler wordScrambler = new WordScrambler();
        wordScrambler.scrambler(words);

    }

    public void scrambler(String words) {

        String[] word = words.trim().split(" ");

        for (int i = 0; i < word.length; i++) {

            System.out.println(word[i]);
        }
    }
}
于 2013-11-09T01:26:09.563 回答
0

您需要将变量作为参数传递给方法。如果您制作该方法static,您可以简单地从您的main().

另外,将您的输入命名为 (obviously) input,因为它就是这样。

这是我的做法:

public static void main(String[] args) {
    Scanner sc = new Scanner (System.in);
    String input = sc.nextLine();
    System.out.println(scramble(input));
}

public static String scramble(String input) {
    List<String> words = new ArrayList<String>(Arrays.asList(input.trim().split("\\s+")));
    Collections.shuffle(words);
    return words.toString().replaceAll("[^\\w ]", "");
}
于 2013-11-09T02:00:11.473 回答