Mein Code funktioniert, außer ich muss es passieren einige Junit-Test. Es geht alle außer einem. Es passiert, wenn der Charakter nichts eingibt, Großbuchstaben, Kleinbuchstaben oder eine Mischung aus den beiden, und es funktioniert, wenn die Eingabe Hello World!Eingabe der Benutzerzeichenfolge. Zählen Zeichen
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] textArray = new int[26];
System.out.print("Enter text: ");
readText(input, textArray);
}
public static void readText(Scanner input, int[]text){
char letter = 0;
if (input.hasNext() == false) {
System.out.println();
}
else {
while (input.hasNext()) {
String a = input.nextLine();
for (int i = 0; i < a.length(); i++) {
letter = a.charAt(i);
if (letter >= 'A' && letter <= 'Z') {
text[letter-65] = (text[letter-65]) + 1;
}
else if (letter >= 'a' && letter <= 'z') {
text[(letter - 32) - 65] = (text[(letter - 32) - 65]) + 1;
}
else if (letter == ' ') {
System.out.print("");
}
else {
System.out.print("");
}
}
}
}
String[] alphabet = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
for (int y = 0; y < text.length; y++) {
if (text[y] > 0) {
System.out.println(alphabet[y] + ": " + text[y]);
}
}
}
Der Junit testet diesen Eingang: 1 2 3% n! ? >% N :) !!% n
Die erwartete Ausgabe ist
Enter text:
//empty line here
Aber anstatt die Ausgabe von meinem Code ist
Enter text: //with no line after
Ich bin nicht sicher, wie die zusätzliche Linie zu bekommen nachdem ich meine anderen Junit-Tests ruiniert habe. Ich versuchte es in einer Richtung und es funktionierte, aber dann funktionierte meine Hello World nicht richtig.
Und Beispiel, wenn seine Arbeits:
Wenn ich die Konsole laufen treffen wird sagen
Text eingeben:
Ich habe einen Scanner-Eingang, so dass die Benutzer einige Wörter eingeben und es wird wie folgt aussehen in Konsole
Text eingeben: Ein paar Worte
Dann wird es zählen wurde die Anzahl der einzelnen Buchstaben verwendet und Druck, der 01 ähnliche
zu tröstenText eingeben: Einige Wörter
D: 1
E: 1
M: 1
O: 2
R: 1
S: 2
W: 1
Wenn I don ‚t etwas eingeben, wenn Sie gefragt und drücken Sie einfach die Enter-Taste die Ausgabe
Text eingeben:
// leere Zeile hier
Aber wenn ich eingeben
Text eingeben: 1 2 3
? ! >
:) !!
Der Ausgang fügt am Ende keine zusätzliche Zeile hinzu.
Verwenden Sie System.out.println ("Text eingeben:") anstelle von System.out.print ("Text eingeben:"). –
'System.out.println (" Text eingeben: "+" \ n ");' Sie möchten nach "Text eingeben" eine neue Zeile einfügen. Wenn Sie es auch tabgen möchten, können Sie 'System.out verwenden.println ("Text eingeben:" + "\ n \ t"); ' – Munib
@ return0 Das geht nicht, weil die Benutzereingabe in derselben Zeile sein muss wie" Text eingeben: " – Jay58t