[英]How to remove carriage return & space and store strings in the array properly?
我有一个包含4行数据的文本文件。
AAA,ZZZ,555,10
BBB,KKK,908977,5
CCCCC,WIKY PODAR,130000,15
DDDDD,XXXXX555,130110,30
然后我阅读它们并将其拆分,删除回车符,替换为昏迷并将其存储在数组中。
打印出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];
}
为什么不尝试以下方法呢? 更矮更甜?
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]", "");
无需用逗号替换回车符。
无需用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);
}
}
}
输出:
AAA
ZZZ
555
10
BBB
KKK
908977
5
CCCCC
WIKY PODAR
130000
15
DDDDD
XXXXX555
130110
30
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.