为什么我的if-else语句被忽略了?

时间:2016-03-19 00:48:18

标签: java if-statement while-loop

我正在尝试创建一些读取文本文件的代码,将文本文件拆分为更小的块,并根据某些块等于执行操作。这是我的示例文本文件。

Derek 19 12
Jake 17 1
God 5000 13

我遇到的问题是我的if-else语句被完全忽略,并且只调用了最后的else语句。如果有人能帮助我理解我做错了什么,我将不胜感激。这是我的代码(文本文件和显示的代码是我正在处理的更大程序的简化版本。我已经测试了代码以确保错误仍然存​​在)。任何人都可以提供的帮助将不胜感激。

package testProgram;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class IfElseStatmentTest {

public static void main(String[] args) {
    String fileName = "NumberData.txt";
    Scanner inputStream = ReadInputFile(fileName);
    while (inputStream.hasNextLine()){
        String newLine = inputStream.nextLine();
        String[] data = newLine.split(" ");
        if (data[0] == "Derek")
            System.out.println("Hi Derek");
        else if (data[0] == "Jake")
            System.out.println("Hi Jake");
        else if (data[0] == "God")
            System.out.println("Hi God");
        else
            System.out.println("kaboom");
    }

}

public static Scanner ReadInputFile(String fileName){

    Scanner inputStream = null;

   try {
       inputStream = new Scanner(new File(fileName));
       return inputStream;
   }
   //display an error message if you have trouble opening the file             
   catch(FileNotFoundException e) {
       System.out.println("Error opening the file " + 
                           fileName);

       System.exit(0);
       return inputStream;
   }

    }

}

这是我得到的错误输出

kaboom
kaboom
kaboom

这是我应该得到的输出。

Hi Derek
Hi Jake
Hi God

0 个答案:

没有答案