Java-Umschalten zwischen alphabet-Fall in string
Ich habe mein code zu wechseln, der Fall vom oberen bis zum unteren und Umgekehrt. Auch ich habe es, wo es schaltet die Obere und untere, und die untere zu der oberen. Meine Frage ist; gibt es eine Möglichkeit, kann ich es auch auf die Zeichen wie ein Komma oder ein Punkt. Zum Beispiel, wenn ich in dem string "Hello, there." Ich erhalten: "HALLO.", "hello, there" und "hELLOTHERE". Wie bekomme ich es, wo meine Dritten Ausgabe wird sagen: "Hallo, ist DORT."
import java.util.*;
public class UpperLower2
{
public static void main(String[] args)
{
System.out.println("Enter in a sentence:");
Scanner input = new Scanner(System.in);
String sentence = input.nextLine();
System.out.println("All uppercase:" + sentence.toUpperCase());
System.out.println("All lowercase:" + sentence.toLowerCase());
System.out.println("Converted String:" + toggleString(sentence));
input.close();
}
public static String toggleString(String sentence)
{
String toggled = "";
for(int i=0; i<sentence.length(); i++)
{
char letter = sentence.charAt(i);
if(Character.isUpperCase(sentence.charAt(i)))
{
letter = Character.toLowerCase(letter);
toggled = toggled + letter;
}
else if(Character.isLowerCase(sentence.charAt(i)))
{
letter = Character.toUpperCase(letter);
toggled = toggled + letter;
}
}
return toggled;
}
}
InformationsquelleAutor ecain | 2015-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ein Charakter der weder groß-noch Kleinbuchstaben sind, sollten Sie nur nehmen, wie es ist. Auch, verwenden Sie nicht eine
String
sammeln Sie Ihre Leistung - das ist, wasStringBuilder
s sind für:EDIT:
Eine ähnliche Umsetzung in Java 8 Semantik ohne Schleife über den string selbst:
InformationsquelleAutor Mureinik
Angesichts der source-code, den Sie geschrieben haben, müssen Sie nun eine if-Anweisung mit zwei Abteilungen: eine für den Fall, wo der Charakter wurde upper-case-und eine, wenn der Charakter war-und Kleinschreibung. Zeichen, wie Komma und andere Satzzeichen nicht Ober-oder Kleinbuchstaben, so werden Sie ignoriert, die durch Ihre if-Anweisung und else-block.
Zu umgehen, fügen Sie eine weitere
else
- block um die Anweisung:Nachdem Sie haben, dass die Arbeit, die Sie in Aussehen sollte, wodurch der code sauberer.
Haben Sie nun die Anweisung
toggled = toggled + letter;
drei mal in deinem code, die Sie ändern können, in einer Zeit:Auch, die bevorzugte Methode zum erstellen von strings in Java ist die Verwendung
StringBuilder
statt der+
- operator auf strings. Wenn Sie suchen, auf StackOverflow fürStringBuilder
erhalten Sie viele Beispiele, wie man das nutzen.InformationsquelleAutor Erwin Bolwidt
Verwendung der Apache commons lang API-Klasse StringUtils.
Großbuchstaben/Kleinbuchstaben/SwapCase/Capitalize/Uncapitalize - änderungen der Fall, die eine Zeichenfolge
Wechseln die Fälle, Verwenden Sie die
Auch Sie nicht brauchen, um code schreiben zu behandeln " oder . oder andere diese Art von Zeichen.String Util wird es alle tun..
Beispiel:
Ausgabe:
Hallo, ES
HALLO, ES
Hallo, es
es funktioniert. Sie haben wahrscheinlich noch nicht gelernt, zu Bibliotheken von Drittanbietern verwenden.
General Kenobi!
InformationsquelleAutor 027
Wir können einfach konvertieren die eingehenden String in char[] und schalten Sie Sie einzeln. Für mich gearbeitet!!!
InformationsquelleAutor Ronit
Können Sie es mit einer Zeile code in Java 8:
String newText = text.chars()
.mapToObj(ch -> Character.isLowerCase(ch) ? String.valueOf(Character.toUpperCase((char)ch)) : String.valueOf(Character.toLowerCase((char)ch)))
.collect(Collectors.joining());
InformationsquelleAutor VHS
Wir können dies tun, indem Sie vergleichen, werden alle Zeichen der Zeichenkette mit allen Großbuchstaben und Kleinbuchstaben Alphabete. Wenn die Zeichen mit Großbuchstaben alphabet, ersetzen Sie es mit den entsprechenden Kleinbuchstaben und Umgekehrt.
InformationsquelleAutor Binny Chelziah M