Seul premier mot d'une phrase vu en Java


Je suis un débutant qui écrit du code Java. Je n'ai pas lu les boucles encore. Je suis juste à la hauteur des déclarations if-else. Mon code fonctionne sauf lorsque j'entre une phrase, seul le premier mot est reconnu. Si j'entre une phrase sans espaces, cela fonctionne parfaitement. Comment puis-je obtenir le code pour voir toute la phrase? Merci!

import java.util.Scanner;

public class Program04
{
    public static void main(String[] args)
    {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Write a complete sentence with proper grammer:");
        String sentence = keyboard.next();
        boolean qMark = sentence.contains("?");
        boolean wow = sentence.contains("!");
        if (qMark)
            System.out.println("Yes");
        else if (wow)
            System.out.println("Wow");
        else
            System.out.println("You always say that.");
    }
}
Author: user1026422, 2011-11-03

3 answers

Utiliser

keyboard.nextLine();

Au Lieu de

keyboard.next();
 3
Author: Bhesh Gurung, 2011-11-02 20:13:53

Jetez un oeil à l'API , en particulier la partie sur nextLine().

 2
Author: hvgotcodes, 2011-11-02 20:13:33

Scanner.next() renvoie uniquement le jeton suivant, qui, par défaut, n'est qu'un mot (délimité par des espaces). Si vous voulez la phrase entière, vous pouvez changer le délimiteur en '\n': keyboard.setDelimiter("\n");, ou vous pouvez apprendre des boucles, puis faire une boucle sur toute la phrase.

Modifier: Ou, comme d'autres l'ont souligné, nextLine(). C'est plus portable parce que les mac utilisent '\r', qui ne sera pas pris avec ce que j'ai dit.

 0
Author: Kevin, 2011-11-02 20:16:18