gpt4 book ai didi

java - .txt 文件到数组使用 Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:18:32 26 4
gpt4 key购买 nike

我有一个包含文档信息的 .txt 文件(对于 1400 个文档)。每个文档都有一个 ID、标题、作者、领域和摘要。示例如下所示:

.I 1
.T
experimental investigation of the aerodynamics of a
wing in a slipstream .
.A
brenckman,m.
.B
j. ae. scs. 25, 1958, 324.
.W
experimental investigation of the aerodynamics of a
wing in a slipstream .
[...]
the specific configuration of the experiment .

我想将这些中的每一个放入专用于每个类别的 5 个数组中。我在将标题和摘要插入单个数组位置时遇到问题,有人能告诉我这段代码有什么问题吗?我想做的是在读取“.T”后将文本行插入位置 x 并在找到“.A”时停止,当它发生时,将位置增加 1 以填充下一个位置

try{
collection = new File (File location);
fr = new FileReader (collection);
br = new BufferedReader(fr);
String numDoc = " ";
int pos = 0;
while((numDoc=br.readLine())!=null){
if(numDoc.contains(".T")){
while((numDoc=br.readLine())!= null && !numDoc.contains(".A")){
Title[pos] = Title[pos] + numDoc;
pos++;
}

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

目标是将所有信息包含在一行字符串中。任何帮助将不胜感激。

最佳答案

代码演练总是有帮助的。将来,您可能会使用断点,但我想我知道为什么您得到我认为是空指针异常的原因。

while((numDoc=br.readLine())!=null){
if(numDoc.contains(".T")){
while((numDoc=br.readLine())!= null && !numDoc.contains(".A")){

在外面,一切看起来都很好,在这个循环中,事情开始变得疯狂。

            Title[pos] = Title[pos] + numDoc; 

根据您提供的输入,我们将设置:

Title[0] as Title[0] + "a 的空气动力学实验研究"

这仅在 Title[0] 存在时有效,我认为它还没有被初始化。我们将首先通过正确检测空数组值来解决该问题。这要么是关于未初始化的东西的编译器错误,要么是运行时空指针异常。在我的脑海中,我想说编译器错误。

所以无论如何,我们将解决空 Title[pos] 的问题。

while((numDoc=br.readLine())!=null){
if(numDoc.contains(".T")){
while((numDoc=br.readLine())!= null && !numDoc.contains(".A")){
if(Title[pos] != null) {
Title[pos] = Title[pos] + numDoc;
}
else {
Title[pos] = numDoc;
}
pos++;
}
}
}

当我们进行另一次演练时,我们将获得以下数组值

Title[0]=experimental investigation of the aerodynamics of a

Title[1]=wing in a slipstream .

如果这是故意的,那很好。如果您希望将标题放在一起,则将 pos++ 移出 while 循环。

while((numDoc=br.readLine())!=null){
if(numDoc.contains(".T")){
while((numDoc=br.readLine())!= null && !numDoc.contains(".A")){
if(Title[pos] != null) {
Title[pos] = Title[pos] + " " + numDoc; // add a space between lines
}
else {
Title[pos] = numDoc;
}
}
pos++;
}
}

然后我们得到:

Title[0]=experimental investigation of the aerodynamics of a wing in a slipstream .

您可能想要减少输入,但这应该涵盖我能看到的两个潜在错误。

关于java - .txt 文件到数组使用 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26432607/

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