0

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

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 个,但并不总是相同的数字)
  • 删除所有出现的-------->,而不删除字符串其他部分的连字符。中的连字符数-------->可能因字符串而异
4

7 回答 7

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"

于 2012-06-05T07:11:28.617 回答
1

您可以将正则表达式传递给该replaceAll方法,因此以下工作:

String s = "Agregator par. L1-23 2/22.-------->EFM Actelis ML628  8-210  alternative 8-/208";
s = s.replaceAll("-*>", " ");

如果您不知道-'es 的数量在您的----->

于 2012-06-05T07:07:34.027 回答
0

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

于 2012-06-05T07:10:10.060 回答
0

来自 apache common-lang 的 StringUtils 类提供了对 String、FQN org.apache.commons.lang.StringUtils 的简单和少量操作

于 2012-06-05T15:18:20.333 回答
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

于 2012-06-05T07:03:28.643 回答
0

您可以像这样使用 String 的 replace 方法。

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

于 2012-06-05T07:06:38.807 回答
0

使用 split("----->") 然后合并结果数组

String [] array = s.split("---->");
String snew = "";
for(int i=0;i<array.length;i++){
   snew += array[i];
}
于 2012-06-05T07:07:44.313 回答