在 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
。
我正在从网站抓取数据并将其存储在 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
。