繁体   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