gpt4 book ai didi

java - 提取多个分隔符之间的文本

转载 作者:行者123 更新时间:2023-12-02 08:29:26 25 4
gpt4 key购买 nike

我需要从文本文件中提取特定字符串,该文件中的行具有多个可能相似或不同的分隔符。例如,假设我有一个文本文件包含以下几行。让我们将分隔符之间的每个文本视为一个段。

ABC#12#3#LINE1####1234678985$
DEF#XY#Z:1234:1234561230$
ABC#12#3#LINE TWO####1234678985$
DEF#XY#Z:1234:4564561230$
ABC#12#3#3RD LINE####1234678985$
DEF#XY#Z*1234:7894561230$

我需要编写一段代码,根据两个输入提取文本文件中所有行中 ABC#12#3# 之后的文本。

1) 要查找的段(例如 ABC)

2) 我需要从中提取文本的段的位置。 (例如,4)

因此,输入 ABC 和第 4 段将给出结果 - LINE1,输入 DEF 和第 5 段将给出结果 - LINE1结果 - 1234678985。这是我到目前为止关于第一个输入的信息。

scanner = new Scanner(file);
while (scanner.hasNextLine()) {
line = scanner.nextLine();
if (line.contains(find)){ // find is the 1st input - (e.g., ABC)
System.out.println("Line to be replaced - "+ line);
int ind1 = line.indexOf(findlastchar+"*")+1;
int ind2 = line.indexOf("*");
System.out.println("Ind1 is "+ ind1+ " and Ind2 is " + ind2);
System.out.println("findlastchar is "+findlastchar+"#");
remove = line.substring(line.indexOf(findlastchar)+1, line.indexOf("#"));
System.out.println("String to be replaced " + remove);
content = content.replaceAll(remove, replace);
}
}

我的代码有两个问题。我不知道如何使用 substring 来分隔相同分隔符之间的文本,并且我不确定如何编写代码,以便能够将以下所有特殊字符识别为分隔符 - {#, $, :} ,从而将任何这些分隔符之间的任何文本视为一个段。

this 问题的回答使用了我想避免的正则表达式。

最佳答案

简单地拆分行并使用索引:

public String GetItemFromLine(String s, String delimiter, String prefix, int index) {
String[] items = s.split(delimiter);
return items[0] == prefix ? items[index] : null;
}

PS 我没有 Java 经验,因此请将此示例视为伪代码。

关于java - 提取多个分隔符之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32970530/

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