我有一个csv文件,其中每行中的逗号用逗号分隔,例如:
WORD1,word2和WORD3,word4
word5,word6,word7,word8 ......等等。
我能够解析它并读取行但是当我打印行时它会以逗号后面的空格返回:
word1,word2,word3 .....
BufferedReader r = new BufferedReader(new InputStreamReader(new BlobstoreInputStream(blobKey)));
@SuppressWarnings("resource")
/*readinf from blob file*/
CSVReader reader = new CSVReader(r,',');
String[] nextLine;
List<String> lines = new ArrayList<>();
while ((nextLine = reader.readNext()) != null)
{
System.out.print(Arrays.toString(nextLine)+"\n");
}
如何删除空格并获取&#34; word1,word2,word3 ....&#34;?
更新:我只需要在逗号后删除空格,而不是逗号中的单词之间的空格。 (&#34; word1另一个word2,word3,word4和word5&#34; ---&gt;&#34; word1另一个word2,word3,word4和word5&#34;
答案 0 :(得分:1)
使用Arrays.toString
输出数组时,正在添加空格。这不是CSV阅读器。
如果要在逗号后面没有空格格式化数组,可以使用StringJoiner
。例如,在Java 8中,您可以编写:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
String commaSeparatedNumbers = numbers.stream()
.map(i -> i.toString())
.collect(Collectors.joining(","));
如果您需要使用Java 7或更早版本:
您可以在大约5行代码中实现StringJoiner
使用循环和StringBuilder
...的功能。
StringBuilder sb = new StringBuilder();
for (String s: array) {
if (sb.length() > 0) sb.append(",");
sb.append(s);
}
System.out.println(sb);