簡體   English   中英

刪除尾部和前導空格

[英]Removing trailing and leading spaces

我正在嘗試從文件輸入中過濾出逗號和空格。 我正在返回輸入行(下面的示例,並將該行傳遞給一種方法,該方法將過濾出逗號以及前導和尾隨空格)

John Paul Claurigh, Craig Megan, Bob a’ Chores 

應該過濾到數組中的三個單獨的字符串。

John Paul Claurigh
Craig Megan
Bob a’ Chores

我的問題不是要消除逗號,而是要消除開頭和結尾的空格。

public void listConverter(String list){
String[] array=listConverter.split(",");
for(int i=0; i<array.length; i++){
    addSubject(array[i]);
}

我可以使用split方法去除前導空格和尾隨空格嗎?

嘗試類似:

String[] array = s.split("\\s*,\\s*");

這意味着在逗號(,)之前或之后除以任何數量(0..n)空格。

輸出:

<John Paul Claurigh>
<Craig Megan>
<Bob a’ Chores>

您的代碼似乎正確,只需使用trim()刪除前導/結尾空格

public void listConverter(String list){
String[] array=listConverter.split(",");
for(int i=0; i<array.length; i++){
    addSubject(array[i].trim());
}

在逗號后用空格簡單分割就足夠了

String s = "John Paul Claurigh, Craig Megan, Bob a’ Chores";
String[]tokens = s.split(", ");//note the space after comma.
System.out.println(Arrays.toString(tokens));

您可以嘗試以下方法:

public void listConverter(String list){
String[] array=listConverter.split("\\s*,\\s*");
for(int i=0; i<array.length; i++){
    addSubject(array[i]);
}

它將以逗號分割,帶有或不帶有任何前導/尾隨空格。

Java 8再現

    String fileInput = "John Paul Claurigh,   Craig Megan    ,    Bob a’ Chores   ";

    List<String> namesList = Pattern.compile(",\\s")
            .splitAsStream(fileInput)
            .map(name -> name.trim())
            .collect(Collectors.toList());


    namesList.forEach(name -> System.out.println("NAME: " + name));

OUTPUT

NAME: John Paul Claurigh
NAME: Craig Megan
NAME: Bob a’ Chores

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM