我正在将逗号分隔的列表读入 Java,其中的元素可能包含空格和单个空格。下面是一些示例行:
,achieve,achievement,achievable,,, (note the space before the first comma)
agree,agreement,, ,agreeable,agreeably (note the space between commas)
,apartment,, (no spaces)
在 Java 中,使用 line.split(",") 生成的 String[] 将所有空白元素更改为空格,除了尾随的元素,它会省略,例如这个:
" ", "achieve", "achievement", "achievable"
"agree", "agreement", " ", " ", "agreeable", "agreeably"
" ", "apartment"
我需要将所有空白元素呈现为空字符串,将单个空格元素呈现为单个空格,如下所示:
" ", "achieve", "achievement", "achievable", "", "", ""
"agree", "agreement", "", " ", "agreeable", "agreeably"
"", "apartment", "", ""
如何在 Java 中执行此操作?
请您参考如下方法:
要避免删除尾随的空元素,请使用 split(delimiter, limit)具有负的 limit 值,如
拆分(",", -1)。
演示:
String[] tests = {
" ,achieve,achievement,achievable,,,",
"agree,agreement,, ,agreeable,agreeably",
",apartment,,"
};
for (String line : tests){
String[] elements = line.split(",", -1);
StringJoiner sj = new StringJoiner( "\", \"", "\"", "\"");
//delimiter, prefix, suffix
for (String element : elements){
sj.add(element);
}
System.out.println(sj);
}
输出:
" ", "achieve", "achievement", "achievable", "", "", ""
"agree", "agreement", "", " ", "agreeable", "agreeably"
"", "apartment", "", ""
