Je veux tester si le char actuel actuel n'est pas ',', '-', '.' ou '' Y at-il une expression plus courte pour:Conditions courtes, java
if((current != ' ') || (current != '.') || ...)
des idées?
EDIT:
Je suis juste le droit d'utiliser les méthodes nextChar et getchar. Je dois faire une boucle à travers les caractères.
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class WoerterZaehlen {
public static void main(String[] args) {
int wordCount = 0;
/* Ab hier dürft ihr eigenen Code einfügen */
char previous = ' ';
while(hasNextChar()){
char current = getChar();
if(current !=)
//if(((current == ' ') || (current == '.') || (current == ',')) && ((previous != ' ') && (previous != ','))){
// wordCount++;
//}
previous = current;
}
/* Ab hier dürft ihr nichts mehr ändern. */
System.out.println("Anzahl der Wörter: " + wordCount);
}
private static InputStreamReader reader;
private static int next = -1;
public static boolean hasNextChar() {
if(next != -1)
return true;
try {
if(reader == null)
reader = new InputStreamReader(new FileInputStream("textdatei.txt"));
next = reader.read();
} catch (IOException e) {
System.out.println("Datei wurde nicht gefunden.");
}
return next != -1;
}
public static char getChar() {
char c = (char) next;
next = -1;
return c;
}
}
Je pense que vous voulez dire && plutôt que ||. –
Pourquoi l'avez-vous tagué avec "optimisation"? L'expression la plus courte ne sera probablement pas la plus optimale en termes de performance. –
J'ai vu votre édition.Je pense que vous devez utiliser la classe Scanner. Elle a déjà des fonctions pour nextChar et getChar. – Emil