gpt4 book ai didi

java - 在java中读取CSV文件时无法打印空行

转载 作者:行者123 更新时间:2023-12-01 12:59:34 24 4
gpt4 key购买 nike

我有以下代码,其中我正在用java读取csv文件,csv文件如下

"1.0.0.0","1.0.0.255","16777216","16777471","AU","Australia"
"1.0.1.0","1.0.3.255","16777472","16778239","CN","China"
"1.0.4.0","1.0.7.255","16778240","16779263","AU","Australia"
"1.0.8.0","1.0.15.255","16779264","16781311","CN","China"
"1.0.16.0","1.0.31.255","16781312","16785407","JP","Japan"
"1.0.32.0","1.0.63.255","16785408","16793599","CN","China"
"1.0.64.0","1.0.127.255","16793600","16809983","JP","Japan"
"1.0.128.0","1.0.255.255","16809984","16842751","TH","Thailand"

以下代码用于在java中读取文件

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class CSVFileReader {

public static void main(String[] args) {

CSVFileReader obj = new CSVFileReader();
obj.run();

}

public void run() {

String csvFile = "Whois.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";

try {

br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {

// use comma as separator
String[] country = line.split(cvsSplitBy);
if(line.contains("AU") || line.contains("AU"))
{

System.out.println("Country [code= " + country[4]
+ " , name=" + country[5] + "]");
}
else
{
System.out.println("");
}

}

} 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("Done");
}

}

通过这个java代码,我正在读取我在行中得到AU的行。它正确地显示了两个结果,这是正确的,但我想要像我没有在行中得到AU字符串的地方一样。它应该将该行打印为空白。

正如我们在 csv 文件代码中看到的。AU 位于第一行和第三行,它打印 AU 存在的两行。我希望输出是第一个 AU 行,然后第二行应该为空白,然后在第三行所需的 AU 值...

我怎样才能打印第二个空行,现在它打印两行,其中包含行中的 AU

最佳答案

要为非 AU 行写入空行,您可以编写:

String[] country = line.split(cvsSplitBy);
if( line.contains("AU") ) {
System.out.println("Country [code= " + country[4] + " , name=" + country[5] + "]");
} else {
System.out.println("");
}

虽然这种方法不是一个好的编码/设计的例子(也许除了最简单的一次性脚本的情况,在这种情况下它并不重要)。

我建议考虑将 CSV 结果的处理分开(以方法的形式,该方法将接收 CSV 文件并返回处理后的行/结果的集合)并将其打印出来(接收行/结果的集合)结果并迭代以打印它们)。

这样您就能够以自动方式测试您是否正确处理了结果。

关于java - 在java中读取CSV文件时无法打印空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com