我有一个包含4行数据的文本文件。
AAA,ZZZ,555,10
BBB,KKK,908977,5
CCCCC,WIKY PODAR,130000,15
DDDDD,XXXXX555,130110,30
然后我读了它们并将它们分开,移除了carrige返回,替换了antoher昏迷并将它们存储到一个数组中。
打印出arry,它看起来很好:
[AAA, ZZZ, 555, 10, BBB, KKK, 908977, 5, CCCCC, WIKY PODAR, 130000, 15, DDDDD, XXXXX555, 130110, 30]
但是,我单独打印出它们,10和BBB成为单个数组元素。如何将它们分成两个不同的数组元素?
谢谢。
输出:
AAA
ZZZ
555
10, BBB
KKK
908977
5, CCCCC
WIKY PODAR
130000
15, DDDDD
XXXXX555
130110
30
while (inputStream.read(buffer) != -1) {
String testString2 = new String(buffer);
String delim2 = ",";
String[] token2 = testString2.split(delim2);
String[] myStringArray = new String[token2.length];
for (int i = 0; i < token2.length; i++) {
token2[i]=token2[i].replaceAll("[\n]", "");
token2[i]=token2[i].replaceAll("[\r]", ", ");
myStringArray[i] = token2[i];
}
答案 0 :(得分:2)
为什么不尝试以下方式呢?更短更甜?
List<String> lines = Files.readLines(file, Charsets.UTF_8);
for(String line : lines) {
String[] words = line.split(",");
System.arrayCopy(words, 0, myStringArray, myStringArray.length, words.length);
}
但是如果你真的想以你的方式去做,你需要
替换
token2[i]=token2[i].replaceAll("[\r]", ", ");
与
token2[i]=token2[i].replaceAll("[\r]", "");
无需用逗号替换回车。
答案 1 :(得分:1)
无需用null
替换回车。回车在数据中充当分隔符,就像逗号一样。
以下是读取每一行,分割逗号并聚合标记的代码。
replaceAll()
输出:
import java.io.*;
import java.util.*;
public class ParseTextFile {
public static String[] read(String fileName) throws IOException {
// Will hold all tokens from the file.
List<String> list = new ArrayList<String>();
// Open the file
FileInputStream fstream = new FileInputStream(fileName);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String buffer = null;
// Read the file line-by-line.
while ((buffer = br.readLine()) != null) {
// Split this line on commas and add each token to the list.
String[] tokens = buffer.split(",");
for (String token : tokens) {
list.add(token);
}
}
br.close();
String[] array = new String[list.size()];
return list.toArray(array);
}
public static void main(String argv[]) throws Exception {
String[] result = read("text.txt");
for (String string : result) {
System.out.printf("%s\n", string);
}
}
}