将.txt读入Java图形

时间:2016-03-15 19:42:52

标签: java

所以我已经有了这个文本文件,其中列出了需要在图表中设置的电影和演员,你可以通过每个电影中的角色连接演员(例如:Josh Brolin-> Ian McKellan Josh Brolin和Kevin Bacon一起出现在Hollow Man身上,他和Tom Hanks一起出现在阿波罗13号,与Ian McKellen在DaVinci Code中。我遇到的问题是格式化txt文件的方式。

Apollo13 Kevin Bacon Tom Hanks Gary Sinise
HollowMan Elisabeth Shue Kevin Bacon Josh Brolin
AFewGoodMen Tom Cruise Demi Moore Jack Nicholson Kevin Bacon
OneCrazySummer John Cusack Demi Moore
DaVinciCode Tom Hanks Ian McKellen Audrey Tautou

正如你所看到的,每部电影都是一个单词,但每个演员都是两个单词。任何人都可以帮助我将其读入图形结构吗?我似乎无法想出一个体面的方法。

1 个答案:

答案 0 :(得分:1)

  

正如你所看到的,每部电影都是一个单词,但每个演员都是两个单词。任何人都可以帮助我将其读入图形结构吗?我似乎无法想出一个体面的方法来做到这一点

单词数不是问题。您只需要识别一个不会出现在名称中的分隔符,例如冒号:

示例(存储为txt):

Movie Title1: Actor 1 : Actor 2: Actor 3
Movie Title2: Actor 2 : Actor 4 
Movie Title3: Actor 3 : Actor 5 
Movie Title3: Actor 5

// The first delimited token will always be your movie name, followed by actor names.

要在Java中创建图形,请从文件中读取String.split(":")可以轻松实现的数据,并将其读入对象的数据结构中。

您可以使用 LinkedList 或只是将其作为 2D数组 读取:

        Movie1    Movie2    Movie3    Movie4
Actor1    O         X         X         X
Actor2    O         O         X         X
Actor3    O         X         O         X 
Actor4    X         O         X         X
Actor5    X         X         O         O

您当然可以将int0s1s或二维数组booleantruefalse一起存储。有了它,你可以得到电影和演员的各种组合和关系。

例如,要检查Actor5中是否涉及Movie2

return (graph[4][1]);  //Actor5 corresponds to row4, Movie2 to col1