Java 我想将arrayList对象与字符串进行比较,忽略大小写。我该怎么做?

Java 我想将arrayList对象与字符串进行比较,忽略大小写。我该怎么做?,java,object,if-statement,arraylist,ignore-case,Java,Object,If Statement,Arraylist,Ignore Case,下面是用Java编写的代码 public static void main (String [] args) throws Exception { ordListe ol = new ordListe(); ol.lesBok("navn.text"); ol.leggTilOrd("hello"); ol.leggTilOrd("Hello"); 这是我的主要方法。这是关于从文件中读取并添加到arraylist(字典)的Hello“”和“Hello”应该是同一

下面是用Java编写的代码

public static void main (String [] args) throws Exception
{
    ordListe ol = new ordListe();
    ol.lesBok("navn.text");
    ol.leggTilOrd("hello");
    ol.leggTilOrd("Hello");
这是我的主要方法。这是关于从文件中读取并添加到arraylist(字典)的Hello“”和“Hello”应该是同一个单词,在下面的代码中,它应该增加该单词的计数

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;
        }
    }
for(int i=0;i
这是我代码的一部分。在main方法中,我添加了诸如
ol.leggTilOrd(“hello”)
leggTilOrd
是我的方法,上面的代码取自此方法。这是将单词添加到dictionary/arrayList并检查inputwords是否已存在的代码部分。除了特定的
if(ordListe.get(I).toString().equalsIgnoreCase))
部分之外,我对其他任何东西都没有问题。如果arrayList中存在一个单词,我应该增加该单词的数量。如果没有,我将在arraylist(ordListe)中添加该单词。问题是,即使我添加了
ol.leggTilOrd(“hello”)
ol.leggTilOrd(“hello”)
;使用大写字母“H”,即使使用上面的语句,我也无法识别它是同一个词。我该怎么做,还有其他可能吗?这是我在之前多次尝试后最后一次可能的努力


如果上面有什么问题,就告诉我

在比较之前将两个字符串都改为小写,然后再改为comapare.。这将帮助您,而且更简单!!!使用toLower功能,然后比较

问题是这一行:

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;
}
public boolean containsSignoreCase(字符串项){
对于(int i=0;i

现在,您可以调用containsIgnoreCase来确定列表中是否有一个特定的项目,忽略该案例

您的逻辑有几个问题,代码片段甚至无法编译;请尝试用更精确的内容编辑您的问题。无论如何,
包含的
仅在循环中是不区分大小写的,而且在循环中包含它也没有任何意义。对不起,我没有提到,但是代码片段包含在它自己的名为ordListe.java的java文件中,它是我的“字典”。它为我编译,我可以在另一个“testfile”中添加来自main方法的单词。无论如何,我正在检查arraylist是否包含该字符串元素,我是否应该这样做?我还没有尝试过这个方法,但似乎是一个解决方案。我可能会尝试一下,但是有没有其他可能的方法来解决这个问题,在我的代码中使用base?也就是说,如果没有“包含”,我是批改这项作业的助教之一。这不是你问题的解决方案。(至少不是直接的)。您的“ordliste”不应该扩展ArrayList。另外,在作业中使用StackOverflow的代码时要小心。将其复制粘贴到您自己的代码中会被视为作弊。。她是谁?@erik vesteraas,呃det godkjent med if(ordListe.toString().toLowerCase().contains(s.toLowerCase()))foråsjekke storeåsmåbokstaver?即使这样做有效,为什么equalsIgnoreCase对我不起作用?我不确定,因为你使用的是toString()方法,这可能会导致字符串对象出现问题。尝试卸下toString,然后检查。