我正在尝试从文件输入中过滤掉逗号和空格。 我正在返回一行输入(下面的示例并将该行传递给过滤掉逗号和前导和尾随空格的方法)
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方法去除前导和尾随空格吗?
答案 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