Java代码分析:统计电影导演信息
{"title":"Java代码分析:统计电影导演信息","description":"本代码示例使用Java语言对一个包含50部电影导演信息的字符串进行分析,统计多导演影片、导演总数以及每个导演参与的电影数量。代码逻辑清晰,并附有详细注释,方便理解。","keywords":"Java, 导演, 电影, 统计, 字符串处理, HashMap, 计数, 多导演影片, 代码示例","content":"import java.util.HashMap;import java.util.Map;public class Main {public static void main(String[] args) {String ds = "导演:吴京,导演:贾玲,导演:饺子,导演:郭帆,导演:陈思诚,导演:安东尼·罗素/乔·罗素,导演:林超贤,导演:陈思诚,导演:周星驰,导演:陈凯歌/张一白/管虎/薛晓路/徐峥/宁浩/文牧野,导演:管虎,导演:文牧野,导演:刘伟强,导演:宁浩/徐峥/陈思诚/闫非/彭大魔/邓超/俞白眉,导演:F·加里·格雷,导演:闫非/彭大魔,导演:许诚毅,导演:温子仁,导演:安东尼·罗素/乔·罗素,导演:许诚毅,导演:宋阳/张吃鱼,导演:宁浩,导演:温子仁,导演:迈克尔·贝,导演:田羽生,导演:鲁本·弗雷斯彻,导演:唐季礼,导演:韩寒,导演:詹姆斯·卡梅隆,导演:陈国辉,导演:J·A·巴亚纳,导演:乌尔善,导演:徐克,导演:徐峥,导演:程腾/李炜,导演:曾国祥,导演:迈克尔·贝,导演:拜伦·霍华德/瑞奇·摩尔/杰拉德·布什,导演:邓肯·琼斯,导演:乔斯·韦登,导演:闫非/彭大魔,导演:大卫·雷奇,导演:韩延,导演:冯小刚,导演:科林·特雷沃罗,导演:乔·沃茨,导演:史蒂文·斯皮尔伯格,导演:林诣彬,导演:刘若英,导演:黄渤"; // @1 打印具有多个导演的影片名printMoviesWithMultipleDirectors(ds); // @2 这50个影片,一共出现了多少个导演名int directorCount = countDistinctDirectors(ds);System.out.println("一共出现了 " + directorCount + " 个导演名"); // @3 有哪些导演参演了多个电影,打印导演名和电影数量printDirectorsWithMovieCounts(ds);}public static void printMoviesWithMultipleDirectors(String ds) {String[] movies = ds.split(",");for (String movie : movies) {String[] directors = movie.split("导演:");if (directors.length > 2) {System.out.println(movie);}}}public static int countDistinctDirectors(String ds) {String[] movies = ds.split(",");Map<String, Integer> directorMap = new HashMap<>();for (String movie : movies) {String[] directors = movie.split("导演:");for (int i = 1; i < directors.length; i++) {String director = directors[i];if (director.contains("/")) {String[] subDirectors = director.split("/");for (String subDirector : subDirectors) {directorMap.put(subDirector, directorMap.getOrDefault(subDirector, 0) + 1);}} else {directorMap.put(director, directorMap.getOrDefault(director, 0) + 1);}}}return directorMap.size();}public static void printDirectorsWithMovieCounts(String ds) {String[] movies = ds.split(",");Map<String, Integer> directorMap = new HashMap<>();for (String movie : movies) {String[] directors = movie.split("导演:");for (int i = 1; i < directors.length; i++) {String director = directors[i];if (director.contains("/")) {String[] subDirectors = director.split("/");for (String subDirector : subDirectors) {directorMap.put(subDirector, directorMap.getOrDefault(subDirector, 0) + 1);}} else {directorMap.put(director, directorMap.getOrDefault(director, 0) + 1);}}}for (Map.Entry<String, Integer> entry : directorMap.entrySet()) {if (entry.getValue() > 1) {System.out.println(entry.getKey() + " 参演了 " + entry.getValue() + " 部电影");}}
原文地址: https://www.cveoy.top/t/topic/qc4i 著作权归作者所有。请勿转载和采集!