java - 如何处理在行尾和行首连接字符串的回车?

标签 java arrays carriage-return

我有一个包含两行文字的文本文件

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/

相关文章:

python - 覆盖文件中的行而不创建 "^M"字符

sql - 检测保存在 SQLite 表中的\n 字符?

Java - 可序列化并通过套接字发送对象

java - 将焦点放在组合框的特定项目上而不选择它

arrays - 快速索引越界

java - 如何声明大小约为 10 位数字或更大的数值数组?

java - Java如何计算原始数组的长度?

java - 将对象与对象的数组列表进行比较

java - 如何将 HTMLDocument 分配到 JEditorPane 中以作为源代码进行修改?

python - 如何在python中替换回车并将unix返回转换为windows返回?