Wie zu ignorieren, Sonderzeichen und Leerzeichen im string?
So entwickelte ich diesen code konvertieren von word zu Telefonnummern und wie code ich es zu ignorieren, Leerzeichen eingegeben, während das Ergebnis angezeigt wird?
Also was ich meinte ist, dass der user eingetragen, mit Leerzeichen zwischen den Worten, aber nicht reflektiert wird, in das Ergebnis.
import java.util.Scanner;
{
public static void main (String[] args)
{
Scanner console = new Scanner(System.in);
{
System.out.println("Enter the a word to be converted : ");
String Letter = console.next ();
Letter = Letter.toUpperCase();
Letter = Letter.toLowerCase();
String Number="";
int count=0;
int i=0;
while(count < Letter.length())
{switch(Letter.charAt(i))
{case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
Number += "2";
count++;
break;
case 'D':case 'E':case 'F': case 'd': case 'e': case 'f':
Number += "3";
count++;
break;
case 'G':case 'H':case 'I': case 'g': case 'h': case 'i':
Number += "4";
count++;
break;
case 'J':case 'K':case 'L': case 'j': case 'k': case 'l':
Number += "5";
count++;
break;
case 'M':case 'N':case 'O': case 'm': case 'n': case 'o':
Number += "6";
count++;
break;
case 'P':case 'R':case 'S': case 'p': case 'r': case 's':
Number += "7";
count++;
break;
case 'T':case 'U':case 'V': case 't': case 'u': case 'v':
Number += "8";
count++;
break;
case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z':
Number += "9";
count++;
break;
}
if( count==3) {
Number += "-";
}
i++;
}
System.out.println( Number );
}
}}
- Hausaufgaben?......
- Btw, "Zeichen".toUpperCase(),.. jetzt den code vereinfachen.
- fügen Sie einen default-Fall und nichts tun... aber wenn Sie möchten, dass Benutzer sollten nicht geben Sie es dann byte-array Prüfung-Methode oder die Prüfung von Charakter klug... Es wäre leichter zu verstehen, Ihr problem, wenn Sie erzählt Ihre Eingabe und erwartete Ausgabe
- Haha ich wollte gerade weiter zu verbessern, neue zu java. Auch vielen Dank für deinen input
- meine erwartete Eingabe ist, um dem Benutzer zu ermöglichen, verwenden Sie groß-und Kleinbuchstaben sowie Leerzeichen zwischen den Wörtern.....erwartete Ausgabe ist das Wort konvertiert in zahlen, selbst wenn es Sonderzeichen oder Leerzeichen in der Eingabe.
- Gewünschten out-put [call home] erscheint als [225-54663]
- aber in meiner neuesten zusätzlichen code. wenn ich Sie [die call-home -]...das Ergebnis ist [225-5].
- weil der Raum ist nicht in der dir-Liste thats, warum ich habe ein byte-überprüfung in meinem code...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihren code
Ignorieren von Leerzeichen können Sie die folgenden verwenden:
Diese wird
trim
alle Leerzeichen aus dem String. Sehen String.trim() für mehr Informationen!.Und zu überprüfen, ob der String enthält alles außer Buchstaben, die Sie verwenden können:
Wenn Sie wollen Geschwindigkeit, oder der Einfachheit halber, die Sie verwenden können:
Durch die Verwendung von Standard-in deinem switch-case-Sie können Sie ignorieren, alle anderen Antworten.Also, wenn die y-Typ-alles, was nicht in Ihr wechseln, wird es nicht hinzufügen, um Ihre Anzahl oder Zahl.
Können Sie ersetzen Sie Ihre Zeichen aus der Zeichenfolge, die nicht-alphanumerische leere(
""
) und dann machen Sie die Bearbeitung mit diesem string. Sie können String.replaceAll() Methode.Für ZB:
Ein weiterer Ansatz (ich würde dieses bevorzugen): Siehe Antwort von @KeshavPandey
Wenn Sie versuchen, zu simulieren, eine numerische Tastatur, dann sollten Sie wahrscheinlich verwenden Sie die
blank space
und fügen Sie den string mit0
.Meisten Handys haben
blank space
auf die Anzahl0
- Taste.Folgende Stück code, das könnte Ihnen helfen.
Ich habe gerade optimiert dein code oben. Sie können ersetzen Sie die Zeichen mit den Ziffern mithilfe der String-APIs statt Durchlaufen den string Zeichen für Zeichen und der Erzeugung der Nummer.
Wenn Sie möchten, fügen Sie ein "-" nach 3-stellig, können Sie die folgende Stück code nach der oben genannten Umstellung.
Können Sie fügen Sie einfach eine weitere case-Anweisung zu überprüfen, für die Zeichen, die Sie vermeiden möchten. Dann, "nichts tun", wenn diese getroffen wird...
In Ihrem Fall nur zu wollen, überspringen Sie Räume, fügen Sie einen zusätzlichen Fall spezifisch auf das '' - Zeichen, und/oder einen default-Fall;