用Java清理字符串

时间:2012-06-05 06:56:40

标签: java string

我有以下格式的一系列字符串:

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"

然而,并非所有字符串都遵循这种格式,这意味着它们操作起来并不简单。

这就是我想要做的事情:

  • 删除所有尾随空格(大约56个,但不一定是相同的数字)
  • 删除所有出现的-------->,而不从字符串的其他部分删除连字符。 -------->中的连字符数量可能因字符串
  • 而异

7 个答案:

答案 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)

你可以: 1-使用String.replace()方法替换字符串中的内容。 2-使用正则表达式查找字符串中的某些特定模式(如“---&gt;”或“ - &gt;”或“---------&gt;”或其他任何内容)

答案 6 :(得分:0)

来自apache common-lang的StringUtils类提供了对String,FQN org.apache.commons.lang.StringUtils

的轻松且轻松的操作