Java:在文本文件中进行比较

时间:2017-02-02 00:28:12

标签: java loops text comparison

我目前正在编写一个程序,其中有一个包含数百万个数字的文本文件,我必须通过它查找6个数字的随机字符串(由用户输入)。这有几个限制因素,这使得它变得困难。

  1. 必须使用BufferedReader
  2. 每个字符只能读一次(我使用了一堆嵌套的if语句,但我这样做的方式违反了这条规则)
  3. 不能使用字符串类中的任何方法(因此我不能将读取的字符放在一起并与带有.equals()的原始字符串进行比较)。我已将原始字符串分解为6个单独的字符。

  4. 不允许将读取的字符存储到任何类型的数组中,只能存储到字符变量中(其中应该有6个)

  5. 找到匹配后,就是向用户报告位置(我只需要保留一个计数变量,我随每个字符读取而增加)并继续,直到到达文件末尾。文件中可以有多个匹配项。

    任何有关这方面的帮助都会很棒,我不知道该做什么。

1 个答案:

答案 0 :(得分:2)

您需要haystack进行搜索,说98712365478932145697,然后needle进行查找,比如893

怎么样:

  • 使用BufferedReader.read()一次从haystack字符读取
  • 如果字符是needle中的第一个字符,请将其存储在第一个字符变量中
    • 如果下一个字符是needle中的第二个字符,请将其存储在第二个字符变量中,否则,如果它是needle中的第一个字符,请重新开始并存储它在第一个字符变量
    • 如果下一个字符是needle中的第三个字符,请将其存储在第三个字符变量中,否则,如果它是needle中的第一个字符,请重新开始
  • 如果你填写了最后一个字符变量,你在needle找到了haystack,你可以在这里停下来或重新开始寻找另一个事件

我不会写代码,因为它相当微不足道,这听起来像是家庭作业,但这应该会给你一个轻推。