gpt4 book ai didi

java - 在java中为每一行存储制表符分隔的CSV文件中的变量

转载 作者:行者123 更新时间:2023-11-30 05:44:28 25 4
gpt4 key购买 nike

我尝试在 Java 中读取制表符分隔的 TSV 文件,并希望将每行的值存储在 2 个变量中。 (变量名称:选项卡之前的所有内容,变量 2:选项卡之后的所有内容)。该文件如下所示:

Name1 Lastname1 TAB directory1/subdir1/subdir11
Name2 SecondName2 Lastname2 TAB directory1/subdir2/subdir22

所以我有1) 名字和姓氏,用空格分隔2)选项卡3) url 不带空格4) 新行(在最后一个 url 字符之后,以便下一个条目在新行中开始)

我遵循了教程,我已经拥有的是:

// Open TSV File
public static Scanner openFile(String path) {
try {
Scanner scan;
scan = new Scanner(new File(path));
System.out.println("TSV-File found");
return scan;
} catch (Exception e) {
System.out.println("TSV-File not found");
}
return null;
}

public static void readFile(Scanner scan) {
while(scan.hasNext()) {
String name = scan.next();
String url = scan.next();
System.out.printf("%s %s\n", name, url);
}
}

问题出在我的 readFile() 方法中,因为我不知道怎么说“获取选项卡之前的所有内容并将其存储到变量名称”和“获取选项卡到新行的所有内容并将其存储到变量 url” .

谢谢并问候,帕特里克

最佳答案

字符串::分割

I do not know how to to say "take everything before tab and store it to variable name" and "take everything from tab to new line and store it to variable url".

使用String::split将绳子切成更小的绳子的方法。指定每行字段之间使用的分隔符 ( TAB )。您将返回一组 String 对象,每个对象对应该行的每个字段。

String[] fields = line.split( "\t" ) ;    // Chop string into smaller strings.
String name = fields[ 0 ] ; // Annoying zero-based index counting.
String url = fields[ 1 ] ;

您应该添加一些代码来验证您在数组大小中获得了预期的字段数。

提示:使用库来执行读写 Tab-delimited files 的工作。 。我用Apache Commons CSV此类工作的图书馆。它处理各种CSV格式以及制表符分隔。搜索 Stack Overflow 中的示例,例如 one I posted昨天。在该示例代码中,将 CSVFormat.RFC4180 更改为 CSVFormat.TDF对于制表符分隔格式。

关于java - 在java中为每一行存储制表符分隔的CSV文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090232/

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