/ / LowerCase und UpperCase in Strings - Java

LowerCase und UpperCase in Strings - Java

Hier ist meine Klasse, um die Menge zu findenLeerzeichen, Anzahl der Vokale und Anzahl der Konsonanten in einem Satz. Es funktioniert gut, aber ich brauche es, um die Fälle zu ignorieren. Wie mache ich das? Ich bin mit dem "ignore case" -Code vertraut, aber ich bin mir nicht sicher, wo ich ihn in dieses spezielle Programm schreiben soll.

            public class Counting{
private String sentence;
private int spaces;
private int vowels;
private int consonants;


public Counting(){
sentence = new String();
spaces = 0;
vowels = 0;
consonants = 0;

}

public void setSentence(String sentence){
this.sentence = sentence;
}

public void compute(){
for(int i =0; i < sentence.length();i++){
char letter = sentence.charAt(i);
if(sentence.charAt(i)==" " ){
spaces++;

}
else if((letter=="a")||(letter=="e")
||(letter=="i")||(letter=="o")||(letter=="u"))
vowels++;

else{
consonants++;
}
}
}

public int getSpaces(){
return spaces;
}

public int getVowels(){
return vowels;
}
public int getConsonants(){
return consonants;
}

}

Antworten:

3 für die Antwort № 1

Eine gängige Methode hierfür ist, die ursprüngliche Zeichenfolge in Kleinbuchstaben umzuwandeln.


2 für die Antwort № 2

Konvertieren Sie die an Ihre Klasse übergebene Zeichenfolge in Kleinbuchstaben:

        public Counting(){
setSentence("");
spaces = 0;
vowels = 0;
consonants = 0;

}

public void setSentence(String sentence){
this.sentence = sentence.toLowerCase();
}

2 für die Antwort № 3

Benutzen

letter.equalsIgnoreCase("a")

für Schecks letter ist A oder a


2 für die Antwort № 4

Es wäre wahrscheinlich einfacher, eine Menge aller Vokale und Konsonanten beizubehalten und Groß- und Kleinbuchstaben zu berücksichtigen - Ihr Code enthält Zahlen und Satzzeichen als Konsonanten

if (consonents.contains(c)) consonents++;
else if (vowels.contains(c)) vowels++;
else if (spaces.contains(c)) spaces++

alternativ könnten Sie eine Karte von char und property behalten (eine enum, die bei 0 beginnt und um 1 inkrementiert wird und misc als catch all enthält) und dann einfach ein Array von Property Counts behalten:

counts[property.get(c)]++;

1 für die Antwort № 5

Setze es in deine compute() Methode. Das ist nicht sehr effizient, aber es ist die einfachste Sache zu tun.

public void compute() {
String lowerCaseSentence = sentence.toLowerCase();
//...
}

Und ersetzen sentence mit lowerCaseSentence im Rest des Codes in compute()


1 für die Antwort № 6

Ja, der beste Weg besteht darin, den gesamten Eingabesatz in Groß- oder Kleinschreibung umzuwandeln und die dafür erforderlichen Operationen auszuführen


1 für die Antwort № 7

Versuch es:

sentence.toLowerCase();