[英]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])
會做。
因為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.