首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java对多个字符串执行相同的操作

Java对多个字符串执行相同的操作
EN

Stack Overflow用户
提问于 2018-06-17 05:15:39
回答 5查看 65关注 0票数 0

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

代码语言:javascript
复制
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]

我现在要做的是,...is,我只想写出一次操作线。

EN

回答 5

Stack Overflow用户

发布于 2018-06-17 05:18:41

您可以使用Stream来获取列表:

代码语言:javascript
复制
List<String> results = Stream.of(obj1, obj2, obj3, obj4)
    .map(s -> s.toLowerCase().replaceAll("[^a-z]", "").[snip])
    .collect(toList());
票数 1
EN

Stack Overflow用户

发布于 2018-06-17 05:19:11

将所有对象放入列表中,然后将逻辑应用于每个对象,如下所示:

代码语言:javascript
复制
myList.replaceAll(s -> s.toLowerCase().replaceAll("[^a-z]", "").[snip]);
票数 1
EN

Stack Overflow用户

发布于 2018-06-17 06:09:48

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

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

代码语言:javascript
复制
public String manipulate(String s) {
  return s.toLowerCase().replaceAll("[^a-z]", "").[snip];
}

....

obj1 = manipulate(obj1);
obj2 = manipulate(obj2);
obj3 = manipulate(obj3);
obj4 = manipulate(obj4);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50891798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档