在Java中,当数据从文本文件传递到数组时,很难检查数据

在Java中,当数据从文本文件传递到数组时,很难检查数据,java,Java,我创建了三个类, 首先,ExchangeRate类用于存储文本文件中的数据 code public class ExchangeRate { private String Local; private String Foreign; private double Rate; public ExchangeRate(String Px, String Py, double ER) { Local = Px; Foreign = Py; Rate = ER; } publ

我创建了三个类, 首先,ExchangeRate类用于存储文本文件中的数据

code  public class ExchangeRate {
private String Local;
private String Foreign;
private double Rate;

public ExchangeRate(String Px, String Py, double ER) {
    Local = Px;
    Foreign = Py;
    Rate = ER;
}
public void setLocal(String L) {
    Local = L;
}

public void setForeign(String F) {
    Foreign = F;
}

public void setRate(double R) {
    Rate = R;
}

public String getLocal() {
    return Local;
}

public String getForeign() {
    return Foreign;
}

public double getRate() {
    return Rate;
}
}

然后,我创建CurrencyExchange类,用于转换从构造函数获取的汇率

enter code here public class CurrencyExchange {
public int ratesize = 0;
public ExchangeRate[] allrecord = new ExchangeRate[42];
private String name1;
private String name2;
private double num;
private double num2;

public void convert(String currencyCode1, String currencyCode2,
        double amount, boolean printFlag) {
    name1 = currencyCode1;
    name2 = currencyCode2;
    num = amount;               //change getLocal() to static?
        if (name1 == ExchangeRate.getLocal()
                && name2 == ExchangeRate.getForeign()) {
            num2 = num * ExchangeRate.getRate();
        }

    if (printFlag == true) {
        printInfo();
    }
}

public void addExchangeRate(ExchangeRate exRate) {
    allrecord[ratesize] = exRate;
    setratesize();
}

public void setratesize() {
    ratesize++;
}


public String getname1() {
    return name1;
}

public String getname2() {
    return name2;
}

public double getnum() {
    return num;
}

public void printInfo() {
    System.out.println("Direct Conversion: Converted " + name1 + " " + num
            + " to " + name2 + " "+num2);
}
}

但我很难检查货币是否可以根据短信类上显示的国家名称转换,如“欧元”和“日元”。指根据text.file上的汇率将欧元转换为日元。如果我改变检查部分 “如果(name1==ExchangeRate.getLocal()”为static,则Local将成为文本中的最后一个数据。它无法检查。因此,我想知道如何解决此问题?”

测试班

enter code here import java.io.File;
导入java.io.FileNotFoundException; 导入java.util.Scanner

公共类MP2\U任务1{ 公共静态void main(字符串[]args){

预期产出:

直接兑换:将1000.0港元兑换为83.8英镑

直接折算:55.0元人民币折合8.6735美元

直接兑换:将300.0欧元兑换为39739.23日元

直接兑换:将8000.0港元兑换为1026.4瑞士法郎

关于汇率的整个text.file

港币,美元,1.290000e-01

港元,日元,1.569860e+01

港币,英镑,8.380000e-02

港币,人民币,8178000E-01

港币,欧元,1.185000e-01

港币,瑞士法郎,1.28300E-01

美元,港币,7.750800e+00

美元,日元,1.216885e+02

美元,英镑,6.499000e-01

美元,人民币,6.342400e+00

美元,欧元,9.187000e-01

美元,瑞士法郎,9.951000e-01

日元,HKD,6.3700000E-02

日元,美元,8.200000e-03

日元,英镑,5.300000e-03

日元,人民币,5.210000e-02

日元,欧元,7.500000e-03

日元,瑞士法郎,8.200000e-03

英镑,港币,1.192560e+01

英镑、美元、1.538600e+00

英镑,日元,1.872341e+02

英镑,人民币,9.758600e+00

英镑,欧元,1.413500e+00

英镑,瑞士法郎,1.531000e+00

人民币,港币,1.222100e+00

人民币,美元,1.577000e-01

人民币,日元,1.918650e+01

人民币,英镑,1025000E-01

人民币,欧元,1.448000e-01

人民币,瑞士法郎,1.569000e-01

欧元,港币,8.437100e+00

欧元、美元、1.088600e+00

欧元,日元,1.324641e+02

欧元,英镑,7.075000e-01

欧元,人民币,6.904000e+00

欧元,瑞士法郎,1.083100e+00

瑞士法郎,港币,7.789700e+00

瑞士法郎,美元,1.005000e+00

瑞士法郎,日元,1.222988e+02

瑞士法郎,英镑,6.532000e-01

瑞士法郎,人民币,6.374200e+00

瑞士法郎,欧元,9.233000e-01

if (name1.equals(ExchangeRate.getLocal())
      && name2.equals(ExchangeRate.getForeign())) {
  num2 = num * ExchangeRate.getRate();
}

使用
=
可以比较对象引用,而不是值。

可能是重复的谢谢,但是如果我需要更改ExchangeRate类getLocal()和getForeign()的话方法转换为静态?这是因为在我更改后,它仍然无法进行正确的比较。输出将直接转换:将HKD 1000.0转换为GBP 0.0
if (name1.equals(ExchangeRate.getLocal())
      && name2.equals(ExchangeRate.getForeign())) {
  num2 = num * ExchangeRate.getRate();
}