我希望读取用户输入,然后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. ");
}
}
}
答案 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. ");
}
}