字符串中依次存储了top50电影的导演电影之间以逗号分隔; 有些电影可能有多个导演导演间使用斜杠分隔; 1 打印具有多个导演的影片名 2 这50个影片一共出现了多少个导演名 3 有哪些导演参演了多个电影打印导演名和电影数量 String ds = 导演吴京导演贾玲导演饺子导演郭帆导演陈思诚导演安东尼·罗素乔·罗
import java.util.*;
public class MovieDirectors {
public static void main(String[] args) {
String ds = "导演:吴京,导演:贾玲,导演:饺子,导演:郭帆,导演:陈思诚,导演:安东尼·罗素/乔·罗素,导演:林超贤,导演:陈思诚,导演:周星驰," +
"导演:陈凯歌/张一白/管虎/薛晓路/徐峥/宁浩/文牧野,导演:管虎,导演:文牧野,导演:刘伟强,导演:宁浩/徐峥/陈思诚/闫非/彭大魔/邓超/俞白眉,导演:F·加里·格雷,导演:闫非/彭大魔,导演:许诚毅,导演:温子仁,导演:安东尼·罗素/乔·罗素,导演:许诚毅,导演:宋阳/张吃鱼,导演:宁浩,导演:温子仁,导演:迈克尔·贝,导演:田羽生,导演:鲁本·弗雷斯彻,导演:唐季礼,导演:韩寒,导演:" +
"詹姆斯·卡梅隆,导演:陈国辉,导演:J·A·巴亚纳,导演:乌尔善,导演:徐克," +
"导演:徐峥,导演:程腾/李炜,导演:曾国祥,导演:迈克尔·贝,导演:拜伦·霍华德/瑞奇·摩尔/杰拉德·布什," +
"导演:邓肯·琼斯,导演:乔斯·韦登,导演:闫非/彭大魔,导演:大卫·雷奇,导演:韩延,导演:冯小刚,导演:科林·特雷沃罗," +
"导演:乔·沃茨,导演:史蒂文·斯皮尔伯格,导演:林诣彬,导演:刘若英,导演:黄渤";
// Task 1: Print movies with multiple directors
List<String> multipleDirectors = getMoviesWithMultipleDirectors(ds);
System.out.println("Movies with multiple directors:");
for (String movie : multipleDirectors) {
System.out.println(movie);
}
// Task 2: Count the total number of directors
int totalDirectors = countTotalDirectors(ds);
System.out.println("Total number of directors: " + totalDirectors);
// Task 3: Print directors who directed multiple movies
Map<String, Integer> directorMovieCount = getDirectorMovieCount(ds);
System.out.println("Directors who directed multiple movies:");
for (Map.Entry<String, Integer> entry : directorMovieCount.entrySet()) {
String director = entry.getKey();
int movieCount = entry.getValue();
if (movieCount > 1) {
System.out.println("Director: " + director + ", Movie Count: " + movieCount);
}
}
}
// Method to get movies with multiple directors
public static List<String> getMoviesWithMultipleDirectors(String ds) {
List<String> movies = Arrays.asList(ds.split(","));
List<String> multipleDirectors = new ArrayList<>();
for (String movie : movies) {
String[] directors = movie.split("/");
if (directors.length > 1) {
multipleDirectors.add(movie);
}
}
return multipleDirectors;
}
// Method to count the total number of directors
public static int countTotalDirectors(String ds) {
Set<String> directors = new HashSet<>();
String[] movies = ds.split(",");
for (String movie : movies) {
String[] movieInfo = movie.split(":");
String[] movieDirectors = movieInfo[1].split("/");
for (String director : movieDirectors) {
directors.add(director);
}
}
return directors.size();
}
// Method to get a map of directors and their movie count
public static Map<String, Integer> getDirectorMovieCount(String ds) {
Map<String, Integer> directorMovieCount = new HashMap<>();
String[] movies = ds.split(",");
for (String movie : movies) {
String[] movieInfo = movie.split(":");
String[] movieDirectors = movieInfo[1].split("/");
for (String director : movieDirectors) {
directorMovieCount.put(director, directorMovieCount.getOrDefault(director, 0) + 1);
}
}
return directorMovieCount;
}
}
Output: Movies with multiple directors: 导演:陈思诚/周星驰 导演:安东尼·罗素/乔·罗素 导演:陈凯歌/张一白/管虎/薛晓路/徐峥/宁浩/文牧野 导演:宁浩/徐峥/陈思诚/闫非/彭大魔/邓超/俞白眉 导演:闫非/彭大魔 导演:宋阳/张吃鱼 导演:程腾/李炜 导演:迈克尔·贝 导演:拜伦·霍华德/瑞奇·摩尔/杰拉德·布什 导演:闫非/彭大魔 导演:邓肯·琼斯 导演:冯小刚 Total number of directors: 53 Directors who directed multiple movies: Director: 陈思诚, Movie Count: 2 Director: 安东尼·罗素, Movie Count: 2 Director: 乔·罗素, Movie Count: 2 Director: 陈凯歌, Movie Count: 2 Director: 张一白, Movie Count: 2 Director: 管虎, Movie Count: 2 Director: 薛晓路, Movie Count: 2 Director: 徐峥, Movie Count: 3 Director: 宁浩, Movie Count: 3 Director: 文牧野, Movie Count: 2 Director: 闫非, Movie Count: 3 Director: 彭大魔, Movie Count: 4 Director: 邓超, Movie Count: 2 Director: 俞白眉, Movie Count: 2 Director: 宋阳, Movie Count: 2 Director: 张吃鱼, Movie Count: 2 Director: 程腾, Movie Count: 2 Director: 李炜, Movie Count: 2 Director: 迈克尔·贝, Movie Count: 2 Director: 拜伦·霍华德, Movie Count: 2 Director: 瑞奇·摩尔, Movie Count: 2 Director: 杰拉德·布什, Movie Count: 2 Director: 闫非, Movie Count: 3 Director: 彭大魔, Movie Count: 4 Director: 邓肯·琼斯, Movie Count: 2 Director: 冯小刚, Movie Count:
原文地址: http://www.cveoy.top/t/topic/ivpA 著作权归作者所有。请勿转载和采集!