首页 > 解决方案 > Java 对多个字符串执行相同的操作

问题描述

我有几个字符串变量都需要以相同的方式进行操作。(小写,去除符号和数字,并修剪重复的字符)有什么方法可以通过循环更改所有这些字符串,而不必列出所有字符串并在单独的行上对每个字符串执行操作?

obj1 = obj1.toLowerCase().replaceAll("[^a-z]", "").[snip]
obj2 = obj2.toLowerCase().replaceAll("[^a-z]", "").[snip]
obj3 = obj3.toLowerCase().replaceAll("[^a-z]", "").[snip]
obj4 = obj4.toLowerCase().replaceAll("[^a-z]", "").[snip]

...是我现在必须做的,但我只想写出操作线一次。

标签: javaarraysstring

解决方案


由于字符串在 Java 中的实现方式,您无法优化对象的更新。

但是,您可以将转换提取到一个方法中并在每个变量上调用它,例如(未经测试)

public String manipulate(String s) {
  return s.toLowerCase().replaceAll("[^a-z]", "").[snip];
}

....

obj1 = manipulate(obj1);
obj2 = manipulate(obj2);
obj3 = manipulate(obj3);
obj4 = manipulate(obj4);

推荐阅读