Java将方法中的数据与另一个方法中的hashmap进行比较
这段代码正在读取文本文件并创建HashMap。我想做的是比较ModelOne.txt和ModelTwo.txt中的StatusMAP方法 假设我的ModelOne.txt有如下数据: 型号154321,测试,在线 在我的ModelTwo.txt上有如下数据: 型号2,12345,检查,关闭 我已经知道如何在textfile中获取索引数据,但我不能做的是将来自两个的这两个数据与基于StatusMAP的数据进行比较。因此,基本上,如果ModelOne.txt与ModelTwo.txt进行比较,它将得到索引[3],然后它将进行比较,如果索引[3]在ModelOne中在线,它在ModelTwo中应该是OL,如果不是,它将打印“不相等”,否则“它们相等” 这确实是相当长的阅读,但任何帮助,建议或意见将不胜感激。提前谢谢各位Java将方法中的数据与另一个方法中的hashmap进行比较,java,io,bufferedreader,Java,Io,Bufferedreader,这段代码正在读取文本文件并创建HashMap。我想做的是比较ModelOne.txt和ModelTwo.txt中的StatusMAP方法 假设我的ModelOne.txt有如下数据: 型号154321,测试,在线 在我的ModelTwo.txt上有如下数据: 型号2,12345,检查,关闭 我已经知道如何在textfile中获取索引数据,但我不能做的是将来自两个的这两个数据与基于StatusMAP的数据进行比较。因此,基本上,如果ModelOne.txt与ModelTwo.txt进行比较,它将得
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.io.*;
public class ReadTxt {
public static void main(String[] args) throws Exception{
ReadTxt obj = new ReadTxt();
obj.PackageMAP();
obj.StatusMAP();
obj.ReadModelOne();
obj.ReadModelTwo();
}
public static void StatusMAP() {
Map<String, String> hashstatus = new HashMap<String, String>();
hashstatus.put("Offline", "OFF");
hashstatus.put("Online", "OL");
}
public static void PackageMAP() {
String csvFile = "Names.txt";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try {
Map<String, String> maps = new HashMap<String, String>();
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] packagecode = line.split(cvsSplitBy);
maps.put(packagecode[0], packagecode[1]);
}
//loop map
for (Map.Entry<String, String> entry : maps.entrySet()) {
System.out.println("Name Package one \t" + entry.getKey()
+ "\t"
+ "|"
+ "\t"
+ "Name Package two \t"
+ entry.getValue());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("This is all the Name packages");
}
public static void ReadModelOne() throws Exception{
BufferedReader br = new BufferedReader(new FileReader("ModelOne.txt"));
String line = null;
while ((line = br.readLine()) != null) {
String[] MOne_STATUS = line.split(",");
for (String inputOne : MOne_STATUS) {
inputOne = MOne_STATUS[2];
}
}
br.close();
}
public static void ReadModelTwo() throws Exception{
BufferedReader br = new BufferedReader(new FileReader("ModelTwo.txt"));
String line = null;
while ((line = br.readLine()) != null) {
String[] MTwo_STATUS = line.split(",");
for (String inputTwo : MTwo_STATUS) {
inputTwo = MTwo_STATUS[2];
}
}
br.close();
}
public static void checkStatus() {
// do the checking here for status
}
}
尝试如下:
String data1 = "Model1, 54321, Test, Online";
String data2 = "Model2, 12345, Check, OFF";
String output = (data1.split(", ")[3].equalsIgnoreCase("Online") &&
data2.split(", ")[3].equalsIgnoreCase("OL")) ?
"Equal" :
"Not Equal";
System.out.println(output);
方法StatusMAP用于什么?它创建一个局部变量,但不返回任何内容。你认为“hashstatus”可以从其他方法中使用吗?嗯。。。如果只使用静态方法,为什么要创建ReadTxt?@skozlov-假设StatusMAP散列类似于PackageMAP上的散列。对不起,我只是没有更新代码,但是假设StatusMAP的变量是packagecode。它返回hashmap@fabian读TXT最好的方法是什么?我不能用这个,我正在读一个有几千行的文本文件。这就是为什么我把它放在foreach循环中的原因。@tuturyoka我只是粘贴了如何比较从两个不同文件中获取的两个独立数据。你只能采用比较逻辑。