if else语句执行
问题描述:
我是编程新手。当我运行下面的代码时,它只执行if语句并只打印“xmap”。但是我的输入既包含'x'也包含'y',所以我希望我的程序能够抓取每一行,并查看'x'或'y'并同时打印。谁能帮我这个。if else语句执行
import java.io.*;
import java.util.*;
public class abc {
public static void main(String[] args) {
Map<String, List<String>> xMap = new HashMap<String, List<String>>();
Map<String, List<String>> yMap = new HashMap<String, List<String>>();
try {
Scanner scanner = new Scanner(new FileReader("C:/"));
while (scanner.hasNextLine()) {
String nextLine = scanner.nextLine();
String[] column = nextLine.split(":");
if (column[0].equals("x")) {
if (column.length == 4) {
xMap.put(column[1], Arrays.asList(column[2], column[3]));
} else {
yMap.put(column[1], Arrays.asList(column[2], column[3]));
}
}
}
scanner.close();
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println(xMap);
System.out.println(yMap);
}
}
答
它输出XMAP 如果输入是x和它有4列。 (!再次)如果输入为x它将打印ymap 现在也没有4列
也许,这就是你想要的东西,而不是:
if (column[0].equals("x")) {
if (column.length == 4) {
xMap.put(column[1], Arrays.asList(column[2], column[3]));
}
else if (column[0].equals("y")){
if (column.length == 4) {
yMap.put(column[1], Arrays.asList(column[2], column[3]));
}
}
答
另一个变化,
if (column.length == 4) {
if (column[0].equals("x")) {
xMap.put(column[1], Arrays.asList(column[2], column[3]));
}
else if (column[0].equals("y")){
yMap.put(column[1], Arrays.asList(column[2], column[3]));
}
}
又一变化,
if (column.length == 4 && column[0].equals("x")) {
xMap.put(column[1], Arrays.asList(column[2], column[3]));
}
else if (column.length == 4 && column[0].equals("y")){
yMap.put(column[1], Arrays.asList(column[2], column[3]));
}
+0
谢谢,它帮助:) – user1549861 2012-08-03 23:20:02
备注,公约明智,类应该开始与大写。 '公共课Abc' – 2012-08-03 22:41:32
向我们显示您的输入文件。 – 2012-08-03 22:50:39