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



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

我是一个初学者,如果可能的话,我想要一个关于如何启动这个程序的一点帮助,关于如何在不省略前几行的情况下读取文件input.txt,以及如何读取矩阵中的单词(已经知道的单词)并返回单词的"位置"或"方向"(北,南,西,东,东北,北-ov,南-e等…)像一个填字游戏!

谢谢大家;)

文件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

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

也许我甚至会在所有行后面加上"分隔字符",以避免在每行上重复搜索。(各列相同)

考虑这个问题的一种方法是将矩阵想象成一个图,并找到每个单词的行走路径。

一个糟糕的算法是找到一个单词的开始(或结束)字母,然后解析整个连接字母树直到找到它,然后重复直到找到单词。

从这里开始,它应该会引导你找到一些更好的算法。

最新更新