gpt4 book ai didi

java - 在 Java 中为 HashSet 构建字符串 - 无法正确循环大字符串

转载 作者:行者123 更新时间:2023-12-01 15:04:51 27 4
gpt4 key购买 nike

我正在尝试从包含许多单词的一个很长的字符串中提取单词作为字符串。我试图获取这个大字符串,用 for 循环遍历它,一边构建字符串,一边将它们添加到哈希集中,并跟踪在此过程中有多少个单词。当我构建完所有内容并且 Eclipse 没有显示任何明显错误时,我感到非常自豪,然后当我去测试它时,我有一个 0 计数器、0 hashset.size 和一个空 hashset :(

这是我一直在捏造的代码:

    public int countUniqueWords(String line) {
hashset = new HashSet<String>();
word = new StringBuilder();
int endOfLine = line.length() - 1;
boolean isWord = false;
String stringWord = null;
Integer counter = 0;

for (int i = 0; i < line.length(); i++) {
if (Character.isLetter(line.charAt(i)) == true && i != endOfLine) {
word.append(line.charAt(i));
} else if (Character.isLetter(line.charAt(i)) == false && isWord == true) {
counter++;
stringWord = word.toString();
hashset.add(stringWord);
word = null;
isWord = false;
} else if (Character.isLetter(line.charAt(i)) && i == endOfLine) {
counter++;
stringWord = word.toString();
hashset.add(stringWord);
}
}
System.out.println(counter);
System.out.println(hashset.size());
System.out.println(hashset);
return counter;
}

我会继续寻找并踢轮胎。与此同时,如果有人有任何建议,我会在我的小家庭办公室里给你带来许多精神上的良好氛围。似乎我在这里犯了至少一两个非常基本的错误,因为显然它甚至没有像应该的那样迭代循环。我怀疑这与我使用 StringBuilder 以及 HashSets 和 Character 类有关,所有这些都混在一起,但对其中任何一个都没有特别了解。是的,我已经仔细阅读了 Oracle 文档。

最佳答案

第一个条件对于所有字符都成立

   if (Character.isLetter(line.charAt(i)) == true && i != endOfLine)

第二个条件始终为 false,因为 isWord 为 false,条件下的语句永远不会执行

   else if (Character.isLetter(line.charAt(i)) == false && isWord == true) 

第三个条件永远不会执行,因为这与第一个条件相同

    else if (Character.isLetter(line.charAt(i)) && i == endOfLine)

您需要在需要时通过打开/关闭“isWord”标志来更改条件。

关于java - 在 Java 中为 HashSet 构建字符串 - 无法正确循环大字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13117085/

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