gpt4 book ai didi

java - 在文本行中每次出现字符后获取值

转载 作者:行者123 更新时间:2023-12-01 17:43:07 25 4
gpt4 key购买 nike

我正在遍历 java 中文件的所有行并提取相关数据。文件中有一行我遇到了问题。该行如下所示

"D|12345|TEST|This is a test|123|Test Data|"

我需要获取所有由 | 分隔的单独值分成单独的字符串,忽略“D”所以

String a = 1234 
String b = TEST

等等

文件中有多行,但我只关心以 D 开头的行,我该如何处理?我有一些示例代码,但我不擅长子字符串

public class Main {

public static void main(String[] args) throws IOException {

try {

File f = new File("src/main/resources/data.txt");

List<String> lines = FileUtils.readLines(f, "UTF-8");

for (String line : lines) {
if (line.startsWith("D")) {
// this iis the line i am concerned about
// not sure how to get each value from the line
int ind = line.lastIndexOf("|") + 1;
}
}

} catch (IOException e) {
e.printStackTrace();
}
}
}

最佳答案

您可以直接获取String[]来自String通过使用方法split(...) ,请参阅此示例:

public static void main(String[] args) throws ParseException {
String line = "D|12345|TEST|This is a test|123|Test Data|";

String[] splitLine = line.split("\\|");

for (String word : splitLine) {
System.out.println(word);
}
}

如果您想忽略第一列( "D" ),则采用经典的 for 。循环并从索引 1 开始:

public static void main(String[] args) throws ParseException {
String line = "D|12345|TEST|This is a test|123|Test Data|";

String[] splitLine = line.split("\\|");

for (int i = 1; i < splitLine.length; i++) {
System.out.println(splitLine[i]);
}
}

您基本上可以循环遍历文件的行(就像您已经做的那样),然后仅将该行添加到您的 List<String> 中。如果是startsWith("D")并忽略所有其他的。然后你就拿List<String> 、循环或流式传输(通过)它并分割每一行,如示例中所示。最好是一个类/POJO 来保存值以便存储它们。

关于java - 在文本行中每次出现字符后获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58557954/

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