我希望程序使用许多字符串读取用户输入

时间:2015-11-24 15:49:12

标签: java string

我希望读取用户输入,然后if语句将接管 但它没有读取字符串。我将在不同的区域增加更多的站点。救命!

import java.util.*;

public class centralline {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("What station do you need to know the zone of? ");
        String answer = input.nextLine();
        String zone1 = "Liverpool Street" + "Oxford Street" + "Bank";
        String zone2 = "Mile End" + "Stratford";

        {
            if (zone1.equals(answer)) {
                System.out.println(answer + " is in Zone 1");

            } else if (zone2.equals(answer)) {
                System.out.println(answer + " is in Zone 2");
            } else
                System.out
                        .println("is"
                                + answer
                                + "a Loodon underground station? Maybe check your spelling. ");
        }
    }
}

2 个答案:

答案 0 :(得分:2)

zones存储在String Arrays中,然后检查答案是否在Array中,还是使用.contains()而不是.equals()

if (zone1.contains(answer))

...

 } else if (zone2.contains(answer)) {

或者:

String[] zone1 = new String[3];
zone1[0] = "Liverpool Street";
zone1[1] = "Oxford Street";
zone1[2] = "Bank";

for(String a : zone1)
{
    if (a.equals(answer))
    {
         System.out.println( answer+" is in Zone 1");
         break;
    }
}

只需重复其他区域的步骤...创建一个boolean变量,以跟踪answer中是否找到了zones

答案 1 :(得分:1)

如果您不想使用数组,可以使用方法:

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.println("What station do you need to know the zone of? ");
    String answer = input.nextLine();

        if (isZone1(answer)) {
            System.out.println(answer + " is in Zone 1");

        } else if (isZone2(answer)) {
            System.out.println(answer + " is in Zone 2");
        } else{
            System.out
                    .println("is "
                            + answer
                            + "a Loodon underground station? Maybe check your spelling. ");

        }
}

public static boolean isZone1(String zone)
{
    if(zone.equals("Liverpool Street") || zone.equals("Oxford Street") || zone.equals("Bank"))
    {
        return true;
    }
    return false;
}
public static boolean isZone2(String zone)
{
    if(zone.equals("Mile End") || zone.equals("Stratford"))
    {
        return true;
    }
    return false;
}

或者如果你不想使用数组/方法,你可以在程序中移动逻辑:

    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.println("What station do you need to know the zone of? ");
    String answer = input.nextLine();

        if(answer.equals("Liverpool Street") || answer.equals("Oxford Street") || answer.equals("Bank")) {
            System.out.println(answer + " is in Zone 1");

        } else if(answer.equals("Mile End") || answer.equals("Stratford")){
            System.out.println(answer + " is in Zone 2");
        } else{
            System.out
                    .println("is "
                            + answer
                            + "a Loodon underground station? Maybe check your spelling. ");

        }
}