java - 如何使用文本文件中的键值创建 HashMap?

标签 java file hashmap

我必须使用此文本文件中的名称创建一个 HashMap

关系文本文件:

Susan Sarandon | Tom Hanks : Cloud Atlas
Tom Hanks | Kevin Bacon : Apollo 13
Leonardo Dicaprio | Kevin Bacon : This Boy's Life
Robert De Niro | Kevin Bacon : This Boy's Life
Barack Obama | Tom Hanks : the Road We've Traveled
Helen Keller | Katharine Cornell : Helen Keller in Her Story
Katharine Cornell | Helen Hayes : Stage Door Canteen
Helen Hayes | John Laughlin : Murder with Mirrors
John Laughlin | Kevin Bacon : Footloose
Mark Zuckerberg | Joe Lipari : Terms and Conditions May Apply
Joe Lipari | Welker White : Eat Pray Love
Welker White | Kevin Bacon : Lemon Sky

这是我现在的程序:

public static void main(String[] args)
	
			throws FileNotFoundException
	{
		Scanner input = new Scanner(new File("relationships"));
		HashMap<String, String> relationships = new HashMap<String, String>();
		
		while (input.hasNextLine()) {
            String[] columns = input.nextLine().split(" ");
            relationships.put(columns[0], columns[1]);
        }

        System.out.println(relationships);
    
		}

这是输出:

{Leonardo=Dicaprio, Katharine=Cornell, Joe=Lipari, Tom=Hanks, Robert=De, Susan=Sarandon, John=Laughlin, Mark=Zuckerberg, Barack=Obama, Welker=White, Helen=Hayes}

请问有人知道如何解决这个问题吗?另外如何将它们分开,使其看起来像一个列表?

最佳答案

编辑

我认为你只需改变你的线路:

String[] columns = input.nextLine().split(" ");

至:

String[] columns = input.nextLine().split(Pattern.quote(" | "));

那么 column[0] 将是左侧的名称,column[1] 将是右侧的名称和电影标题。

请注意,您需要导入 java.util.regex.Pattern; 才能执行此操作

关于java - 如何使用文本文件中的键值创建 HashMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617910/

相关文章:

arrays - 快速查找是否有 2 个或更多个相同的数字

java - JOOQ:如何在复杂的Select语句中使用别名?

java - Bean 的 CDI @TransactionAttribute

file - Matlab命令访问每个文件的最后一行?

c# - 如何使用 C# 创建带有日期时间的文本文件名

scala - 如何在我的 Spark 应用程序中使用 OpenHashSet?

java - 使用 JDK 10 运行 icCube

java - codeigniter 中的 PHP 和 Java 集成

Java:从目录中获取新文件列表

java - HttpMessageConverter 异常 : RestClientException: Could not write request: no suitable HttpMessageConverter found