我有以下格式的一系列字符串:
String a = "Agregator par. L1-23 2/22.-------->EFM Actelis ML628 8-210 alternative 8-/208 ";
正如您所看到的,原始格式看起来不太好,所以我想删除部分字符串以得到以下结果:
"Agregator par. L1-23 2/22.EFM Actelis ML628 8-210 alternative 8-/208"
然而,并非所有字符串都遵循这种格式,这意味着它们操作起来并不简单。
这就是我想要做的事情:
-------->
,而不从字符串的其他部分删除连字符。 -------->
中的连字符数量可能因字符串答案 0 :(得分:1)
您可以将正则表达式传递给replaceAll
方法,因此以下工作原理:
String s = "Agregator par. L1-23 2/22.-------->EFM Actelis ML628 8-210 alternative 8-/208";
s = s.replaceAll("-*>", " ");
如果您不知道-
中----->
的数量,那么regexp特别有用
答案 1 :(得分:1)
您可以使用正则表达式删除不需要的字母。
String a= "Agregator par. L1-23 2/22.-------->EFM Actelis ML628 8-210 alternative 8-/208 ";
a = a.trim().replaceAll(" +", " ");
a = a.replaceAll("-*>", " ");
a.trim().replaceAll(" +", " ")
将删除末尾的所有空格,如果有多个空格,则将替换为单个空格。
输出: "Agregator par. L1-23 2/22. EFM Actelis ML628 8-210 alternative 8-/208"
答案 2 :(得分:0)
trim()
不会删除字符串中间的空格...
取自trim()http://docs.oracle.com/javase/6/docs/api/java/lang/String.html的API文档:
返回字符串的副本,包含前导和尾随空格 删去。
如果您执行replaceAll("-------->", "")
它只会替换确切的字符串“-------->”没有破折号或不大于末尾的任何东西....如果你不能做精确匹配,请看看正则表达式http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
答案 3 :(得分:0)
你可以像这样使用String的替换方法。
String a= "Agregator par. L1-23 2/22.-------->EFM Actelis ML628 8-210 alternative 8-/208 ";
a=a.replace("-------->", " "); //to replace the arrow
a=a.replace(" ", " "); //to replace the double spaces
结果:Agregator par. L1-23 2/22. EFM Actelis ML628 8-210 alternative 8-/208
答案 4 :(得分:0)
使用split(“----->”)然后组合结果数组
String [] array = s.split("---->");
String snew = "";
for(int i=0;i<array.length;i++){
snew += array[i];
}
答案 5 :(得分:0)
答案 6 :(得分:0)
来自apache common-lang的StringUtils类提供了对String,FQN org.apache.commons.lang.StringUtils
的轻松且轻松的操作