在Java中,当数据从文本文件传递到数组时,很难检查数据
我创建了三个类, 首先,ExchangeRate类用于存储文本文件中的数据在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
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();
}