gpt4 book ai didi

java - 将 .txt 文件解析为不同的数组

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

我有包含不同数据的 .txt 文件。所有这些数据分为 3 个类别。我需要获取第一个数组的一些数据,第二个数组的一些数据,第三个数组的一些数据。如何做到这一点?

.txt 文件包含 X 部分、空格和 #(用于将文本与第二和第三类别分开)

part 1
some data for 1st array

part 2
some data for 2nd array#some data for 3rd array

part 3
some data for 1st array

part 4
some data for 2nd array#some data for 3rd array

同时,我需要收集每个类别的数据:从第 1 部分和第 3 部分开始,从第 2 部分和第 4 部分开始,# 之后

现在我陷入困境,我的代码获取了所有数据,我不知道下一步应该做什么。

public class MainActivity extends AppCompatActivity {

TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.text1);
textView.setMovementMethod(new ScrollingMovementMethod());
String data = "";
StringBuffer sBuffer = new StringBuffer();
InputStream is = this.getResources().openRawResource(R.raw.phrases);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));

if ( is!= null){
try {
while ((data=reader.readLine()) !=null){
sBuffer.append(data + "\n");
}
textView.setText(sBuffer);
is.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
}

最佳答案

您应该在每次迭代读取一行的 while 循环中添加解析逻辑。

您可以在循环中执行类似的操作:

String[] parsedData = new String[3];
int parsingBlock = -1;
while ((data=reader.readLine()) !=null) {
if (parsingBlock >= 0) {
switch (parsingBlock) {
case 0: parsedData[0] = data; break;
case 1: {
String [] part2Data = data.split("#");
parsedData[1] = part2Data[0];
parsedData[2] = part2Data[1];
break;
}
case 2: parsedData[0] = parsedData[0] + data; break;
case 3: {
String [] part4Data = data.split("#");
parsedData[1] = parsedData[1] + part4Data[0];
parsedData[2] = parsedData[2] + part4Data[1];
}
default: break;
}
}
parsingBlock = -1;
if (data.equals("part 1")) {
parsingBlock = 0;
} else if (data.equals("part 2")) {
parsingBlock = 1;
} else if (data.equals("part 3")) {
parsingBlock = 2;
} else if (data.equals("part 4")) {
parsingBlock = 3;
}
}

关于java - 将 .txt 文件解析为不同的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42610069/

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