【问题标题】:java Stream() showing error while using .replaceAll() method on list of Stringjava Stream()在String列表上使用.replaceAll()方法时显示错误
【发布时间】:2019-10-22 23:57:18
【问题描述】:

我有一个电影数据库,其中包含标题、年份、演员名单、制片人名单和导演名单。我正在尝试开发一种方法,该方法采用演员的真实姓名并将其替换为存储在数据库中的演员艺名。我想出了以下代码。

void actorNameChange()
    {
        Scanner s = new Scanner(System.in);
        System.out.println("Actor Real name : ");
        String realName = s.nextLine();
        System.out.println("Actor stage Name : ");
        String stageName = s.nextLine();
        List<Movie> movies = data.stream().filter(m -> m.getActors().contains(stageName)).collect(toList());

           movies.stream().map(movie -> movie.getActors().stream().sorted(st -> st.replaceAll(realName,stageName)).toArray();
//i am gaetting error here at st.replaceAll() -> method doesn't found
    }

【问题讨论】:

  • 我应该用什么来替换字符串?
  • 你想为Movie对象设置realname吗?
  • getActors()Movie 类中的返回类型是什么?
  • 好吧你的问题真的不清楚你需要添加一些输入和输出的例子。这个方法getActors() 返回什么,你想要什么?
  • 不,我想更改已存储在 Movie 类中 List 演员的数据库中的舞台名称。

标签: java list java-stream


【解决方案1】:

您可以使用简单的forEachList#replaceAll 来更新您现有的集合,例如:

data.forEach(movie -> movie.getActors().replaceAll(m -> m.replace(realName, stageName)));

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 2013-09-03
    • 2011-07-08
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多