简体   繁体   中英

How to get the Scanner to scan all the elements in an array, in java

This is the Question: Create an array of Strings and assign 5 names to it. Ask the user what their name is, if their name is the same as one that is already in the list do something. Get creative,. use a for-each loop to print every name in the array with a space in-between each indices.

This is what I have so far. One of the issues I am having is that the scanner is only comparing the input to the first name on the array and not the rest.

public static void main(String[] args) {
    

    String[] names = {"Jose", "Alex", "Steven", "Sky", "Ana"};

    Scanner scan = new Scanner(System.in);
    System.out.println("What is your name? ");
    
    String input = scan.next();
    
    for (String n:names) {
        if (n.equalsIgnoreCase(input)) {
            System.out.print("Hooray! Your odds of finding a keychain with your name on it are high! =) ");
        }
        
        
        else { 
            System.out.print("Welcome to the rare names club!!! =D " );
            System.out.print(names + " ");
            
            }
        break;
    
        }
    }
}
            
    

Feel free to comment on any other issues you see. I am new at this and I'd appreciate an feedback. Thx

Maybe this will be helpful. I think the "break" is called prematurely. There are lots of ways you can solve this, but I used a boolean to determine if the name was found. Then I used the boolean after the loop to determine what to print.

    public static void main(String[] args) {
        String[] names = {"Jose", "Alex", "Steven", "Sky", "Ana"};

        Scanner scan = new Scanner(System.in);
        System.out.println("What is your name? ");

        String input = scan.next();
        boolean isFound = false;
        for (String n:names) {
            if (n.equalsIgnoreCase(input)) {
                isFound = true;
                break;
            }
        }
        if (isFound) {
            System.out.print("Hooray! Your odds of finding a keychain with your name on it are high! =) ");
        } else {
            System.out.print("Welcome to the rare names club!!! =D " );
            System.out.print(names + " ");
        }
    }

Same method but slightly different:)

`import java.util.Scanner; import java.util.ArrayList;

public class New { public static void main (String[]args) {

    String [] cities = {"Poznan", "Warsaw", "Gdansk", "Wroclaw", "Krakow", "Lodz", "Katowice"};
            Scanner scan = new Scanner(System.in);
                System.out.println("What is the name of your city in Poland? ");

    String name = scan.nextLine();

    for (String n:cities) {
        if (n.equalsIgnoreCase(name)) {
            System.out.println("You are citizen of Poland from " +name);
            System.out.println("Thank your for visiting  " +name);
        }


        else {
            System.out.println("You are not from Poland!!!" );
            System.out.println("There is not city in Poland called" +name);
        }
        break;

    }
}

}`

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM