Java:读取带有字母矩阵的txt文件,并在其中搜索单词

时间:2012-12-27 17:48:41

标签: java crossword

我正在尝试用Java编写基本程序,而我正在使用BlueJ。 我必须读取一个由字母组成的15x15矩阵的文本文件(input.txt),并在其中查找单词。这些单词已知并写入文件input.txt。 可能txt文件已经格式化了,因为它形成了矩阵和搜索wordsh,但是当我去打印时,我跳过了前7-8行(矩阵)。

我是初学者,如果可能的话,我想了解一下如何启动这个程序,关于如何读取文件input.txt而不省略前几行,以及如何读取矩阵中的单词(已经知道的单词)并返回单词的“位置”或“方向”(北,南,西,东,东北,北 - 东,南 - 等......),就像填字游戏一样!< / p>

谢谢大家;)

文件input.txt是:

15
*
ESAFAMELBORPOZE
MTOTEQEVIRCSFCE
SDSTTNLHTIMSFUD
CITGSUGBANDTUOI
IVRUPORAMREFBCE
MEAIATGFTNOCSOR
MRTDDRDAENORRPO
ITEIEOINEMOIPOL
AIGANCTRPIPMRSO
UTIORETAEMOIEID
SIAAEUGAABRNZTA
CAMMINAVRAIEIIM
ARTSONOPRRTLOVM
ACATUDESNNONSOO
TALOBMABEAMVOSS
#
SMITH
TENENTE
FERMA
PROBLEMA
VORRA
STRATEGIA
AGOSTO
FRUTTA
NOIA
PAURA
GUIDI
SCIMMIA
CAMMINA
POSITIVO
SOMMA
SPADE
TRENO
TIRO
CORTO
MONTAGNE
CRIMINE
TUOI
LIBERI
SCRIVE
COMPAGNO
BAMBOLA
VAMPIRO
SEDUTA
BAND
DOLORE
DONO
PREZIOSO
DIVERTITI
BUFFO
NOSTRA
CUOCO
FASE
IDEE

2 个答案:

答案 0 :(得分:0)

我会将数据存储两次 1.作为字符串的行 - &gt;您可以使用.indexOf进行搜索[水平搜索] 2.列作为字符串 - &gt;您可以使用.indexOf [垂直搜索]

进行搜索

也许我甚至会用'分离字符'追加所有行,以避免迭代遍历每一行进行搜索。 (列相同)

答案 1 :(得分:-1)

考虑它的一种方法是将矩阵视为图形,并找到每个单词的步行。

执行此操作的错误算法是找到单词的起始(或结束)字母,然后解析整个连接字母树直到找到它,并重复直到找到该单词。

启动here,它会引导您使用更好的算法。