我在使用IF语句时遇到问题,该语句要检查数组中是否有值,如果没有,则将+1添加到InvalidLine。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Assignment {
public static void main(String[] args) throws FileNotFoundException {
Scanner scan = new Scanner(new File("../Text.txt"));
String line;
while (scan.hasNext()) {
line = scan.nextLine();
String[] elements = line.split(":");
System.out.println("The line has " + elements.length
+ " elements.");
for (int i = 0; i < elements.length; i++) {
System.out.println("Element " + (i + 1) + " was : " + elements[i]);
int InvalidLine = 0;
if (elements[i] == "");{
Invalid++; }
System.out.println("Invalid Fields " + InvalidLine);
}
}
}
}
当输出生成时,即使在某些情况下[1]数组中没有数据,也会向InvalidLine添加+1
该行有4个元素。
元素1是:
1
元素2是:饼干
1
元素3是:3
1
元素4是:4
1
该行有4个元素。
元素1是:咖啡
1
元素2是:Cake
1
元素3是:3
1
元素4是:6
1
答案 0 :(得分:1)
elements[i] == ""
您应永远比较String
,使用
elements[i].equals("")
或
elements[i].isEmpty() // Since Java 6