gpt4 book ai didi

java - 检查文本文件中包含与用户输入相同字母的单词

转载 作者:行者123 更新时间:2023-11-30 12:05:26 25 4
gpt4 key购买 nike

我有一个文本文件中的位置列表。这些位置中的每一个都有一个检查字符。示例 AAAA = ALPHA,AAA1 = BRAVO,AAAC = DELTA,AAA2 = INDIA。AAAA、AAA1、AAAC 和 AAA2 是位置字符串。我有一个包含 160 万个带有检查字符的位置的列表。这些位置由 26 个字母 A-Z 和 0-9 组成。

程序的第一部分返回所有与其位置相同的校验字符。示例:用户输入位置 ABCD,其中包含校验字符 -ALPHA。显示带有校验字符-ALPHA 的所有位置。

程序的第二部分,我想找到所有匹配用户输入的字母或数字的位置。示例用户输入 10AZ,其中包含校验字符 ALPHA。该程序遍历文本文件并找到所有以 ALPHA 结尾且名称中包含 0、1、A 或 Z 的位置。

我尝试使用正则表达式拆分字符串,然后使用包含,但它没有达到我想要的效果。答案可能很简单,但我似乎无法弄清楚,我也看过其他问题,但没有找到我要找的东西。

我写的代码很乱,但我现在只是想找到一个可行的解决方案。关于运行时间的任何建议都值得赞赏。

我尝试过使用变位词方法并尝试让它对我有用,但我只是把代码搞得一团糟。我还尝试将字符串存储在数组中并遍历数组的每个索引,但我的结果不正确。

    // The name of the file to open.
String fileName = "Sn.txt";
// User input for the location
String UserInput = "10AZ";
String CheckCharacter;

//RC method finds the check character for the location
CheckCharacter = Check2.RC(UserInput);

//getPhonetic gives back the phonetic associated with check character
String NewCC = Check2.getPhonetic(CheckCharacter);

String line = null;
try {
FileReader fileReader =
new FileReader(fileName);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader =
new BufferedReader(fileReader);
int count =0;
while((line = bufferedReader.readLine()) != null) {
if(line.endsWith(NewCC)) {
count++;
System.out.println(line);
//System.out.println(isAnagram(UserInput, line) + "USER INPUT");
}
//System.out.println(line);
}
System.out.println(count);
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + fileName + "'");
}

我想要这样的结果:用户输入以 Delta 结尾的位置 10AZ。1. 显示所有以 Delta 结尾的位置 - 这是我正在处理的。2.所有以Delta结尾,以1,0,A,Z开头的位置。3.所有以Delta结尾的包含1,0,A,Z的位置。

欢迎任何建议,无需代码,只需朝着正确的方向轻推即可。

最佳答案

这里有一些我不能在评论中给出的提示:

All the location which end in Delta and start with 1,0,A and Z

为此你可以使用正则表达式,像这样:

String input;
// fill input string
input.matches("^[1OAZ]$");

您可以将 1OAZ 替换为基本上表示的任何字符串或 1 或 O 或 A 或 Z。

All the location which end in Delta and contain 1,0,A and Z.

你可以像你说的那样使用contains

String input;
// fill input string
if(input.contains("1") || input.contains("O") ...){
// do something

在这种情况下,要从字符串“1OAZ”中检索所有字符,您可以使用 toCharArray 函数并遍历字符,或者您可以使用拆分:

char[] chars = string.toCharArray();
String[] strChars = string.split("");
// iterate over chars
for(...) {
if(input.contains(singleCharHere)
// do something

当然,您可以使用正则表达式获得相同的结果,但在这种情况下更加复杂。希望这对您有所帮助。

关于java - 检查文本文件中包含与用户输入相同字母的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56309015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com