【发布时间】:2013-10-20 04:42:16
【问题描述】:
我在尝试编写这个程序时遇到了困难。我在网上找到了许多类似的问题和解决方案,但它们并不是我想要的。
我的程序读取了一个文本文件并将其转换为 char 2D 数组。
示例文本文件:
HFELOJF
ESFOIGD
LSDIOGS
LTDMGER
OEROFFT
SFDLKEG
然后我给它一个诸如“hello”之类的词,程序打印出天气或该词是否存在于数组中。有点像单词搜索。
我需要能够水平、垂直和对角搜索。但在所有 3 种情况下,该词也可以倒转。
我从 2 个 for 循环开始,从左上角开始,一直到最后。
在第二个 for 循环中,我有 3 个 while 循环要处理:水平、垂直和对角线文本。但我刚刚意识到,如果这个词是相反的,它就行不通了。现在为了解决这个问题,我必须构建另外 3 个 while 循环来处理我的代码。
我只是觉得这非常重复,并认为必须有一个更简单的方法。但是我已经盯着这个问题看了好几个小时,还没有想出更好的主意。
如果我继续我所拥有的,我将在第二个 for 循环内有 2 个 for 循环和 6 个 while 循环,我发现它们非常混乱、重复和额外的代码。有没有更好更快更有效的方法来解决这样的问题?
感谢我能获得的所有帮助和信息!
【问题讨论】:
-
如果你能找到一个
String转发,把它倒过来看看它是否有效。 -
是的,这会起作用,但它需要我做另一个循环并不断从数组中减去,看看它是否有效。我知道它有效,但它使代码加倍。我想看看是否有更简单的方法来处理正向和反向这两种情况。
-
“我只是觉得这非常重复,并且认为必须有更简单的方法”。有时,为了理解主题,家庭作业(我假设就是这样)意味着艰苦和重复。在这种情况下,主题是遍历二维数组。是的,这个问题很糟糕,但我相信你会在解决它的过程中找到很多方法
-
计算出你能做的所有代码。如果你卡住了,贴出你的代码并清楚地解释你卡在哪里以及为什么。我相信如果你这样做,你会得到更好的回应。
标签: java arrays file search 2d