Почему я не могу прочитать свою строку с помощью Java Scanner

Как я могу прочитать строку, содержащую пробелы, используя класс Scanner, например "Bolt *******"? Нужно ли удалять пробелы? Но я не могу, я должен держать пробелы между двумя символами. Вот программа, которую я создал:

import java.util.Scanner;

public class Shop {
 public static void main(String args[]){
 Scanner You = new Scanner(System.in);
 //Your Money
 int money;
 String name;
 //Your Cards
 String Cards;
 //Shop (M) Cards
 int Bolt_******* = 100;
 int Eldeen = 95;
 int Jinn = 1020;
 //Shop (S) Cards
 int Dark_Energy = 500;
 int Horn_Unicorn = 640;
 int Sparks = 90;
 //Shop (T) Cards
 int Hidden_S = 800;

 ... //You don't have to see the whole program

 name = You.next();
 if(name.equals("Bolt *******")){ //Here it is Bolt (space) *******
 System.out.println("Seller: That'll cost " + Bolt_*******);
 }else if(name.equals("Eldeen")){
 System.out.println("Seller: That'll cost " + Eldeen); 
 }else if(name.equals("Jinn the Mystical Genie of the Lamp")){
 System.out.println("Seller: That'll cost " + Jinn);
 }else{
 System.out.println("Seller: We don't have that Card yet! ");
 }

 ...

Нужно ли мне делать что-то другое?

3 ответа

замещать

name = You.next();

от

name = You.nextLine();

Я тестировал его с помощью входного Bolt *******

Мой результат = Seller: That'll cost 100


Использование:

name = You.nextLine();

читать целую строку с пробелами.

Вы также можете изменить equals с equalsIgnoreCase, но это зависит от ваших требований:

name = You.nextLine();
if(name.equalsIgnoreCase("Bolt *******")) {
 System.out.println("Seller: That'll cost " + Bolt_*******);
}


замещать

name = You.next();

с

name = You.nextLine();

licensed under cc by-sa 3.0 with attribution.