簡體   English   中英

字符數組比較忽略大小寫

[英]character array comparison ignoring case

我正在為我的 Java class 簡介做一個項目,該項目要求我比較兩個 arrays 中的兩個字符,看看它們是否相同,忽略大小寫。 它將正確答案的答案鍵與學生的測試答案進行比較。 如果學生的答案與答案關鍵答案不匹配,則應將其添加到錯誤問題的數量中。

這是我到目前為止的代碼:

   public static int gradeExam(char[] correct, char[] student)
   {
      int incorrect = 0;

      for (int i = 0; i < correct.length; i++)
      {
         if (!student[i].equalsIgnoreCase(correct[i]))
         {
            incorrect++;
         }
      }
      return incorrect;
   }

這是答案鍵數組:

      char[] correct = {'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B',
                        'C', 'C', 'C', 'C', 'C', 'D', 'D', 'D', 'D', 'D'};

當我嘗試編譯時,我收到此錯誤:

DriverTest.java:53: error: char cannot be dereferenced
         if (!student[i].equalsIgnoreCase(correct[i]))
                        ^
DriverTest.java:68: error: char cannot be dereferenced
         if(!student[i].equalsIgnoreCase(correct[i]))
                       ^
2 errors

我不知道在忽略此案的情況下還能如何做到這一點。 我對 Java 很陌生,所以如果這是一個明顯的修復,我深表歉意。 請幫忙,謝謝!

equalsIgnoreCase是一個String方法。 您不能將其應用於char

你可以寫

if (!Character.toLowerCase(student[i]) == Character.toLowerCase(correct[i]))

或者

if (!Character.toUpperCase(student[i]) == Character.toUpperCase(correct[i]))

請使用Character.toLowerCase()將兩個字符更改為小寫,然后進行比較。

if (Character.toLowerCase(student[i]) != Character.toLowerCase(correct[i]))
 {
    incorrect++;
 }

將兩個字符轉換為相同的大小寫並進行比較

Character.toLowerCase(student[i]) == Character.toLowerCase(correct[i])

會做。

  1. equalsIgnoreCase() 是 String class 的方法,但 student[i] 是 char 而不是 String。
  2. 您可以將字符與 (==, >, <, .=...) 進行比較
  3. 先將 char[] student 轉為大寫,再比較。

因為char是原始類型,所以它沒有與.methodName()相同的方法,其他方式equalsIgnoreCase()屬於String class。 請更改為Character (包裝char的類)

if (Character.toLowerCase(student[i]) != Character.toLowerCase(correct[i])) {
    incorrect++;
}

char 類型是一個原始類型——不是 object——所以它不能被取消引用你可以在兩邊將你的 char 轉換為小寫:

     if (Character.toLowerCase(student[i])!=(Character.toLowerCase(correct[i])))
     {
        incorrect++;
     }

字符 class 在 java.lang package 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM