以下用Java编写的代码
public static void main (String [] args) throws Exception
{
ordListe ol = new ordListe();
ol.lesBok("navn.text");
ol.leggTilOrd("hello");
ol.leggTilOrd("Hello");
是我的主要方法。这是关于从文件读取并添加到arraylist(字典)。 ''你好''和"你好"应该是同一个单词,在下面的代码中,它应该增加该单词的计数。
for (int i = 0; i < ordListe.size(); i++)
{
if (ordListe.toString().contains(s))
{
if (ordListe.get(i).toString().equalsIgnoreCase(s))
{
ord.oekAntall();
System.out.println("'" + s + "' That word is found and there are " + ord.hentAntall() + " of that word now in dictionary.");
break;
}
}
else
{
Ord ny = new Ord(s);
ordListe.add(ny);
System.out.println("'" + s + "' This word is added. " + ny.hentAntall() + " of this word in dictionary.");
break;
}
}
所以这是我的代码的一部分。从主要方法我添加像ol.leggTilOrd("hello");
leggTilOrd
这样的单词是我的方法,其中上面的代码来自。这是将字添加到字典/ arrayList并检查输入字是否已存在的代码的一部分。除了特定的if (ordListe.get(i).toString().equalsIgnoreCase(s))
部分之外,我没有任何其他问题。如果arrayList中存在一个单词,我应该增加该单词的计数。如果没有,我在arraylist(ordListe)中添加单词。问题是即使我添加ol.leggTilOrd("hello")
或ol.leggTilOrd("Hello")
;有了资本&#39; H,即使我使用上述陈述,我也无法将其识别为同一个词。我该怎么做,还有其他任何可能吗?经过多次尝试之后,这是我最后的努力。
如果上面有任何疑问,请告诉我。
答案 0 :(得分:0)
在比较之前将两个字符串更改为小写,然后比较..这将帮助您,并且更容易!使用toLower函数然后比较
答案 1 :(得分:0)
问题在于这一行:
if (ordListe.toString().contains(s))
因为1)你不比较两个字符串的小写或大写版本,2)你可能没有覆盖toString,所以它会像你预期的那样返回列表中的项目。假设您的ordliste扩展了arraylist:
,请将此函数放在ordListe类中public boolean containsIgnoreCase(String item) {
for(int i = 0; i < size(); i++) {
if (get(i).toString().equalsIgnoreCase(item)) {
return true;
}
}
return false;
}
现在你可以调用containsIgnoreCase来确定列表中是否有特定的项目忽略大小写