簡體   English   中英

如何比較字符?

[英]How can I compare char characters?

為什么此Java代碼不起作用? 如何添加||邏輯比較 $$if語句中鍵入char:

System.out.println("Type Text");
txt = ms.next();
size = txt.length();

for (int i = 0; i < size; i++) {

    if ((txt.charAt(i)) == ('a'||'b')) {
        System.out.println("is the letter A or B");
    }

}

您不能指定|| 在兩個char之間進行運算符表示此字符或您嘗試在此處輸入的另一個字符:

if ((txt.charAt(i)) == ('a'||'b')) { ...}

|| 是邏輯OR,必須將其放置在兩個布爾表達式之間,例如:

if (txt.charAt(i) == 'a' || txt.charAt(i) == 'b'){
   ...
}

Operators教程是總結Java中運算符的很好的參考(本質上是關於它們的描述和優先級)。
為了避免重復,您可以引入局部變量:

char c = txt.charAt(i);
if (c  == 'a' || c == 'b'){
   ...
}

要指定更多邏輯或,使用包含有效字符的集合是一種有趣的可能性:

if (Arrays.asList('a', 'b', 'c').contains(txt.charAt(i)){
   ...
}

為了提高性能(如果有許多有效字符),可以使用Set

if (new HashSet<>(Arrays.asList('a', 'b', 'c')).contains(txt.charAt(i)){
   ...
}

如果必須多次使用條件語句,則最好一次實例化集合。

暫無
暫無

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

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