Skip to main content
 首页 » 编程设计

java之如何在 Java 中拆分字符串,包括空格(就像在 Python 中一样)

2025年05月04日26dyllove98

我正在将逗号分隔的列表读入 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", "", ""