在 java 中避免 .CSV 文件开头的逗号

Avoiding comma at the start of .CSV file in java

我正在从网站抓取数据并将其存储在 CSV 文件中。当数据进入 CSV 文件时,它会在每一行的最后一个地方得到逗号。不知何故我设法处理它。但是,现在我在创建另一列的每一行的开头都得到了那个逗号。以下是我的代码。

for (Iterator<Element> it = tdElements.iterator(); it.hasNext();) {
                    if (it.hasNext()) {
                        sb.append("  \n  ");
                    }
                    for (Iterator<Element> it2 = trElement2.iterator(); it.hasNext();) {
                        Element tdElement = it.next();
                        final String content = tdElement.text();

                        if (it2.hasNext()) {
                            sb.append("   ,   ");
                            sb.append(formatData(content));
                        }

                        if (!it2.hasNext()) {
                            String content1 = content.replaceAll(",$", " ");
                            sb.append(formatData(content1));
                            break;
                        } //to remove last placed Commas.

                    }

                    System.out.println(sb.toString());
                    sb.flush();
                    sb.close();

我想要的结果例如:a,b,c,d,e
我得到的结果例如:,a,b,c,d,e

如果你在 Java 8 中开发,我建议你使用 StringJoiner. With this new class, you don't have to build the string yourself. You can find an example to create a CSV with StringJoiner here

希望对您有所帮助。

StringBuffer sb = new StringBuffer(" ");
    for (Iterator<Element> it = tdElements.iterator(); it.hasNext();) {
                    if (it.hasNext()) {
                        sb.deleteCharAt(sb.length() - 1);
                        sb.append("  \n  ");
                    }
                    for (Iterator<Element> it2 = trElement2.iterator(); it.hasNext();) {
                        Element tdElement = it.next();
                        final String content = tdElement.text();

                        if (it2.hasNext()) {
                            sb.append(formatData(content));
                            sb.append(",");

                        }

                        if (!it2.hasNext()) {
                            String content1 = content.replaceAll(",$", " ");
                            sb.append(formatData(content1));
                            break;
                        } //to remove last placed Commas.

                    }

                    System.out.println(sb.toString());
                    sb.flush();
                    sb.close();


}

我正在尝试 remove 最后一个 character,在你的例子中是 ,instance where it is trying to move to a new line 尝试用我的代码替换 并确保 instantiate stringbuffer 带有作为字符串传递的 space