Ich versuche zu überprüfen, ob mein String einen Konsonanten enthält. Der folgende Fehler lautet: "Operator || kann nicht auf 'boolean', 'char' angewendet werden" Hier ist mein Code:
for(int i=0;i<8;i++){
if(bezeichnung.charAt(i) == 'b'||'c'||'d'||'f'||'g'||'h'||'j'||'k'||'l'||'m'||'n'||'p'||'q'||'r'||'s'||'t'||'v'||'w'||'x'||'y'||'z'){
//do something
}
}
4 Antworten
Wenn Sie ||
verwenden möchten, müssen Sie die Bedingungen vollständig ausschreiben:
if (bezeichnung.charAt(i) == 'b' || bezeichnung.charAt(i) == 'c'
|| bezeichnung.charAt(i) == 'd' ...
Oder Sie könnten einen Weg finden, es präziser auszudrücken:
if ("bcdfghjklmnpqrstvwxyz".indexOf(bezeichnung.charAt(i))>=0) {
...
}
Wenn Sie den Code im gleichen Stil wie Sie halten, müssten Sie dies tun
for(int i=0;i<8;i++){
if(bezeichnung.charAt(i) == 'b'|| bezeichnung.charAt(i) == 'c'||bezeichnung.charAt(i) =='d) // continue this for all your cases
//do something
}
}
Wenn Sie eine lange bedingte Aussage wie diese haben müssen, würde ich andere Wege untersuchen, um die Aufgabe zu erfüllen, die Sie erreichen möchten
Sie können stattdessen reguläre Ausdrücke verwenden.
for(int i=0;i<8;i++){
String regex = ".*[a-zA-Z].*";
if(bezeichnung.charAt(i).matches(regex)){
//do something
}
}
Sie können den OR-Operator nicht so verwenden.
Für jedes Zeichen müssen Sie die Bedingung separat überprüfen.
for(int i=0;i<8;i++)
{
if(bezeichnung.charAt(i) == 'b' || bezeichnung.charAt(i) == 'c' || bezeichnung.charAt(i) == 'd' || bezeichnung.charAt(i) == 'f')
{
//do something
}
}
Neue Fragen
java
Java ist eine Programmiersprache auf hoher Ebene. Verwenden Sie dieses Tag, wenn Sie Probleme haben, die Sprache selbst zu verwenden oder zu verstehen. Dieses Tag wird selten alleine verwendet und wird am häufigsten in Verbindung mit [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] und [maven] verwendet.