Faire un brouilleur de mots en java


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

}

}

Je ne comprends pas vraiment comment obtenir mes "mots" variables dans ma méthode scramble afin que je puisse diviser chaque mot que je mets en chaînes séparées, est-ce que je déclare juste un nouveau tableau mots quand je fais cela? Comment puis-je saisir cette variable d'en haut. Aussi, mon système.hors.println vérifie simplement si mon scanner a fonctionné. Ou est-ce que je le fais bien et est-ce en train de diviser les mots?

Author: Breon Thibodeaux, 2013-11-09

3 answers

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]);
        }
    }
}
 0
Author: gjman2, 2013-11-09 01:26:09

Il semble que vous souhaitiez simplement passer une variable d'une méthode à une autre.

Sidenote: en Java, les noms de méthode commencent par une lettre minuscule et sont généralement des verbes: scramble not Scrambler

Dans:

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

Vous avez obtenu l'entrée, mais vous n'avez toujours nulle part où l'envoyer car vous n'avez pas encore créé d'instance de WordScrambler.

Alors, faisons-en un:

WordScrambler wordScrambler = new WordScrambler();

Ok, maintenant vous avez accès à la méthode scramble, donc

wordScrambler.scramble( words )

Sera faire bouger les choses

Maintenant, vous devrez faire quelque chose avec cette chaîne dans scramble (après avoir corrigé la déclaration de méthode pour accepter un paramètre de chaîne), comme le diviser, mélanger les mots et sortir le résultat, par exemple.

 0
Author: Ray Stojonic, 2013-11-09 01:24:43

Vous devez passer la variable à la méthode en tant que paramètre. Si vous faites de la méthode static, vous pouvez l'appeler simplement à partir de votre main().

Aussi, nommez votre entrée comme (évidemment) input, parce que c'est ce que c'est.

Voici comment je le ferais:

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 ]", "");
}
 0
Author: Bohemian, 2013-11-09 02:42:06