我有一个包含两行文字的文本文件
CCCCC,WIKY PODAR,130000,15
DDDDD,XXXXX555,130110,30
程序逐字读取每一行,并将它们存储到一个数组中。
检查 myStringArray.length 返回:7
但是我希望输出为:8
问题是行尾和行首的两个词连接在一起。如何将它们分开并正确存储到数组中?
String fileName = "mac/text.txt";
byte[] buffer = new byte[1000];
FileInputStream inputStream = new FileInputStream(fileName);
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++) {
myStringArray[i] = token2[i];
token2[i]=token2[i].replaceAll("\\s+", ", ");
}
System.out.println(myStringArray.length);
最佳答案
为什么不加载一个字符串中的所有内容并用 ","
字符替换字符串中的行分隔符字符串?然后,您可以使用单个分隔符 ","
轻松拆分字符串。
你可以试试:
String content = new String(Files.readAllBytes(Paths.get("mac/text.txt")));
content = content.replaceAll(System.lineSeparator(), ",");
String[] token2 = content.split(",");
或者,如果您想避免调用 replaceAll() 并直接执行拆分,您可以在正则表达式中指示 ,
字符 OR
行分隔符字符串:
String content = new String(Files.readAllBytes(Paths.get("mac/text.txt")));
String[] token2 = content.split(",|"+System.lineSeparator());
关于java - 如何处理在行尾和行首连接字符串的回车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907828/