如何从 Java 中的 txt 文件中读取 2 个特定列?
How do I read 2 particular columns from a txt file in Java?
如何从 txt 文件中读取 2 个特定列(第 1 列和第 3 列)。主要问题是列由不同的分隔符分隔(我想忽略写入(基数 16)的第二列)。还有我如何跳过列标题。
txt 文件如下所示:
IOU/AB-L Organization
company_id Organization
Address
D0-AB-DB (hex) Ahenhen ViewAt Technology Co.,Ltd.
D0ABDB (base 16) Ahenhen ViewAt Technology Co.,Ltd.
9A,Microprofit,6th Gaoxin South Road, High-Tech
Industrial Park, Nanshan, henzhen.
henzhen guangdong 51867
DN
42-05-F5 (hex) Integrated Technology (Malaysia) Sdn. Bhd.
4205F5 (base 16) Integrated Technology (Malaysia) Sdn. Bhd.
Phase 1, Bayan Aepas FIZ
Bayan Lepas Penang 11923
NY
我正在尝试使用以下代码。但是它不起作用。
String line;
BufferedReader reader = new BufferedReader(new FileReader(path));
while ((line = reader.readLine()) != null) {
String[] parts = line.split(" ", 3);
if (parts.length >= 3) {
String key = parts[0];
String value = parts[2];
System.out.println("Key value pair is " + key + " " + value);
map.put(key, value);
} else {
System.out.println("ignoring line: " + line);
}
}
所以基本上我想在第一行阅读 D0-AB-DB
和 Ahenhen ViewAt Technology Co.,Ltd.
,然后我想在第二行阅读 42-05-F5
和 Integrated Technology (Malaysia) Sdn. Bhd.
。
在这种情况下我应该使用什么正则表达式。示例代码会有所帮助。
提前致谢!!
按如下方式重写您的 while 循环:
while ((line = reader.readLine()) != null) {
String[] parts = line.split("\((hex)\)", 3);
if (parts.length >= 2) {
String key = parts[0].trim();
String value = parts[1].trim();
System.out.println("Key value pair is :" + key + " " + value);
map.put(key, value);
} else {
System.out.println("ignoring line: " + line);
}
}
如何从 txt 文件中读取 2 个特定列(第 1 列和第 3 列)。主要问题是列由不同的分隔符分隔(我想忽略写入(基数 16)的第二列)。还有我如何跳过列标题。 txt 文件如下所示:
IOU/AB-L Organization
company_id Organization
Address
D0-AB-DB (hex) Ahenhen ViewAt Technology Co.,Ltd.
D0ABDB (base 16) Ahenhen ViewAt Technology Co.,Ltd.
9A,Microprofit,6th Gaoxin South Road, High-Tech
Industrial Park, Nanshan, henzhen.
henzhen guangdong 51867
DN
42-05-F5 (hex) Integrated Technology (Malaysia) Sdn. Bhd.
4205F5 (base 16) Integrated Technology (Malaysia) Sdn. Bhd.
Phase 1, Bayan Aepas FIZ
Bayan Lepas Penang 11923
NY
我正在尝试使用以下代码。但是它不起作用。
String line;
BufferedReader reader = new BufferedReader(new FileReader(path));
while ((line = reader.readLine()) != null) {
String[] parts = line.split(" ", 3);
if (parts.length >= 3) {
String key = parts[0];
String value = parts[2];
System.out.println("Key value pair is " + key + " " + value);
map.put(key, value);
} else {
System.out.println("ignoring line: " + line);
}
}
所以基本上我想在第一行阅读 D0-AB-DB
和 Ahenhen ViewAt Technology Co.,Ltd.
,然后我想在第二行阅读 42-05-F5
和 Integrated Technology (Malaysia) Sdn. Bhd.
。
在这种情况下我应该使用什么正则表达式。示例代码会有所帮助。
提前致谢!!
按如下方式重写您的 while 循环:
while ((line = reader.readLine()) != null) {
String[] parts = line.split("\((hex)\)", 3);
if (parts.length >= 2) {
String key = parts[0].trim();
String value = parts[1].trim();
System.out.println("Key value pair is :" + key + " " + value);
map.put(key, value);
} else {
System.out.println("ignoring line: " + line);
}
}