java - 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]
...是我现在必须做的,但我只想写出操作线一次。
解决方案
由于字符串在 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);
推荐阅读
- git - Eclipse - 没有更改时的 Git Push HEAD
- c# - 即使我使用 try{}catch{},仍然会收到 NullReferenceException
- javascript - 即使两个密码字符串完全匹配,为什么我从 bcrypt compare 得到 isMatch null ?
- matplotlib - 向 matplotlib 颜色条添加自定义刻度线
- javascript - Vue 动态路由 - 显示来自另一个组件的用户详细信息
- sqlalchemy - 如何使用 SQLAlchemy/ORM 映射视图?
- python - bool类型图像到uint8的转换
- python - 使用 pandas 的 puthon 错误:TypeError: can only concatenate str (not "float") to str
- docker - traefik 路由到侦听不同端口的容器
- c# - 使用.net核心中的linq过滤掉实体框架中的数据