删除尾随和前导空格

时间:2015-10-24 15:50:54

标签: java regex string

我正在尝试从文件输入中过滤掉逗号和空格。 我正在返回一行输入(下面的示例并将该行传递给过滤掉逗号和前导和尾随空格的方法)

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方法去除前导和尾随空格吗?

5 个答案:

答案 0 :(得分:2)

尝试类似:

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

这意味着在逗号(,)之前或之后用任意数字(0..n)空格分割。

输出:

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

答案 1 :(得分:1)

您的代码似乎正确,只需使用trim()删除前导/结尾空格

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

答案 2 :(得分:0)

用逗号后的空格进行简单拆分就足够了

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));

答案 3 :(得分:0)

你可以试试这个:

var stroke = new ol.style.Stroke({
        color: 'rgba(0,0,0,0.4)',
        lineCap: "butt",
        lineJoin: "bevel",
        width:1         
    });


function styleFunction(feature, resolution) {
    var color = feature.get('color');
    var name = feature.get('name');
    var geom = feature.getGeometry().getType();

    var fill = new ol.style.Fill({
        color: color
    });

//this does not work    
    if (geom == 'LineString') {
        stroke.width=42;
    }

    var circle = new ol.style.Circle({
        radius: 6,
        fill: fill,
        stroke: stroke,
        color:color
    });

    var text= new ol.style.Text({
            font: '20px Verdana',
            text: name,
            fill: new ol.style.Fill({
                color: [64, 64, 64, 0.75]
            })
        })

    var cStyle = new ol.style.Style({
        fill: fill,
        stroke: stroke,
        image : circle,
        text : text
    });

    return [cStyle];
}

它将在逗号上拆分,有或没有任何前导/尾随空格。

答案 4 :(得分:0)

java 8 rendition

    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));

输出

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