下面的第一段代码导入文件,并将其放入二维数组中。该文件的内容如下。
public MyPage1()
{
//...
MessagingCenter.Subscribe<Object>(this, "click_second_tab", (obj) =>
{
//load your data here
Console.WriteLine("11111");
});
}
BufferedReader brStudents = null;
BufferedReader brStudents2 = null;
BufferedReader reader = null;
String[][] spaces = new String[11224][4];
try
{
reader = new BufferedReader(new FileReader("FileMAIN"));
String line = null;
int row = 0;
while ((line = reader.readLine()) != null)
{
String[] arrays = line.split(",");
for (int i = 0; i < 4; i++)
{
spaces[row][i] = arrays[i];
}
row++;
}
}
包含11442行数据,其布局方式如下:
FileMAIN
导入数组后,下面的代码比较John, Maths, 534, Green
Sally, Science, 3232, Red
Lilly, Science, 123123, Purple
中value
中column 0
中FileONE
中的值,如果在FileONE
中找不到它,则在{ {1}}。如果仍然找不到它,则表明它已丢失。
下面是FileTWO
和FileONE
的示例
FileTWO
FileONE或FileTWO的示例
try
{
Map<String, String> firstFile = getMapFromCSV("FileONE");
Map<String, String> secondFile = getMapFromCSV("FileTWO");
int index = 2;
for(String[] row : spaces) {
String valueToFind = row[index];
if(firstFile.containsKey(valueToFind)) {
row[index] = firstFile.get(valueToFind);
} else if(secondFile.containsKey(valueToFind)) {
row[index] = secondFile.get(valueToFind);
} else {
System.out.println("Missing " + valueToFind);
}
}
最后,我不确定如何不仅不能声明丢失,还可以将值更改为第二列中的值。
例如,123123, UJDJ7D
3232, YHD2H3
534, DSJI3HJ
中的值来自:
spaces[][]
收件人:
John, Maths, 534, Green
Sally, Science, 3232, Red
Lilly, Science, 123123, Purple
并仍显示缺少的任何人。
答案 0 :(得分:0)
这就是实现for
循环的方式,我跳过了contains
的使用,直接执行了get
并自己验证了结果。如果有任何get
调用返回一个值,则将其分配给当前的row
for (String[] row : spaces) {
String valueToFind = row[index];
String value = firstFile.get(valueToFind);
if (value == nil) {
value = secondFile.get(valueToFind);
}
if (value != nil) {
row[index] = value;
} else {
System.out.println("Missing " + valueToFind);
}
}
我不知道此代码的上下文,但我仍然建议您创建一个简单的POJO类并跳过该多维数组。在我看来,它使代码更具可读性,并且使编写代码更容易
class Example {
private String name;
private String course;
private String courseId;
private String color;
//constructor, get/set methods ..
}