gpt4 book ai didi

java - 努力根据分隔符解析不同的文本文件

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

今天我一直在断断续续地研究这个问题。

这是我的方法,它基本上需要接受 .data (txt) 文件位置,然后遍历该文本文件的内容并根据存在的分隔符将其分解为字符串。这是 2 个文件。人员文件。

Person ID,First Name,Last Name,Street,City
1,Ola,Hansen,Timoteivn,Sandnes

2,Tove,Svendson,Borgvn,Stavanger
3,Kari,Pettersen,Storgt,Stavanger

订单文件。

Order ID|Order Number|Person ID
10|2000|1
11|2001|2
12|2002|1
13|2003|10


public static void openFile(String url) {
//initialize array for data to be held
String[][] myStringArray = new String[10][10];
int row = 0;
try {
//open the file
FileInputStream fstream = new FileInputStream(url);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
//ignores any blank entries
if (!"".equals(strLine)) {
//splits by comma(\\| for order) and places individually into array
String[] splitStr = new String[5];
//splitStr = strLine.split("\\|");
/*
* This is the part that i am struggling with getting to work.
*/

if (strLine.contains("\\|")) {
splitStr = strLine.split("\\|");
} else if (strLine.contains(",")) {
splitStr = strLine.split(",");
}else{
System.out.println("error no delimiter detected");
}

for (int i = 0; i < splitStr.length; i++) {
myStringArray[row][i] = splitStr[i];
System.out.println(myStringArray[row][i]);
}
}
}
//Close the input stream
br.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
}

人员文件已正确读取和解析。但命令文件中带有“|”分隔符没有任何内容。我只是得到“空”打印输出。

令我困惑的是,当我只有 splitStr = strLine.split("\|"); 时它有效,但我需要此方法能够检测存在的分隔符,然后应用正确的分割。

任何帮助将不胜感激

最佳答案

除了应该使用 CSV 库来完成此操作之外,此代码失败的原因是 contains不接受正则表达式。删除转义字符以便可以检测管道字符

if (strLine.contains("|")) {

关于java - 努力根据分隔符解析不同的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056913/

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