Konvertieren eines Zeichens in Großbuchstaben in Java
Lesezeit: 4 Minuten
Schaf
Wie könnte ich die bekommen f Und l Variablen in Großbuchstaben umgewandelt?
String lower = Name.toLowerCase();
int a = Name.indexOf(" ",0);
String first = lower.substring(0, a);
String last = lower.substring(a+1);
char f = first.charAt(0);
char l = last.charAt(0);
System.out.println(l);
Welchen Teil der Antworten auf Ihre vorherige Frage haben Sie nicht verstanden? Meine Antwort dort enthält eine Antwort auf diese Frage.
– Bozo
12. September 2010 um 20:24 Uhr
@shep – Können Sie die Antwort von BalusC akzeptieren? Es wird zukünftigen Suchenden helfen.
Es hat jedoch einige Einschränkungen, da die Welt viel mehr Zeichen kennt, als jemals in 16bit passen char Bereich. Siehe auch den folgenden Auszug aus der javadoc:
Hinweis: Diese Methode kann nicht verarbeiten ergänzende Zeichen. Um alle Unicode-Zeichen, einschließlich ergänzender Zeichen, zu unterstützen, verwenden Sie die toUpperCase(int) Methode.
Raul Sharma
Anstatt vorhandene Dienstprogramme zu verwenden, können Sie die folgende Konvertierung mit boolescher Operation versuchen:
Nehmen wir ein Beispiel für klein l Zu L Wandlung:
Die binäre UND-Verknüpfung: (l & 0x5f)
l Charakter hat ASCII 108 und 01101100 ist eine binäre Darstellung.
1101100
& 1011111
-----------
1001100 = 76 in decimal which is **ASCII** code of L
Ebenso die L Zu l Wandlung:
Die binäre XOR-Operation: (L ^ 0x20)
1001100
^ 0100000
-----------
1101100 = 108 in decimal which is **ASCII** code of l
Ich bin ehrlich schockiert, dass dies 7 Stimmen hat. Obwohl ich den cleveren Ansatz begrüße, führt Cleverness selten zu wartbarem Code, insbesondere wenn er anstelle einer integrierten Methode wie verwendet wird Character.toUpperCase(). Alle Benutzer sollten verstehen, dass es nichts Nicht-ASCII verarbeitet.
– Adam Hewitt
6. September 2017 um 15:52 Uhr
@AdamHewitt Dieser Ansatz funktioniert auch mit Nicht-ASCII-Zeichen, z. B. ‘250’, jedoch würden einige Nicht-ASCII-Zeichen nicht die erwarteten Ergebnisse liefern. Ihr Standpunkt ist richtig, dass Benutzer die richtige Verwendung dieses Ansatzes verstehen sollten und er hauptsächlich verwendet werden sollte für englische Alphabete.
– Rahul Sharma
6. September 2017 um 17:37 Uhr
Ich denke, es sollte sein c | 0x20 anstatt c ^ 0x20 für Kleinbuchstaben. Andernfalls, wenn das Zeichen bereits Kleinbuchstaben ist, wird Ihr Code es in Großbuchstaben umwandeln
– Steven Yue
16. Februar 2018 um 1:52 Uhr
Schauen Sie sich die an java.lang.Character Klasse bietet sie viele nützliche Methoden zum Konvertieren oder Testen von Zeichen.
+1 Ich mag die Antworten, die dem Benutzer einen Hinweis geben, um nach der Antwort zu suchen
– Anthony Forloney
12. September 2010 um 20:24 Uhr
-1, wenn wir ein Dragnet für Studenten verwenden, entfernen wir einen der SO-Hauptvorteile. Verbringen Sie nicht übermäßig viel Zeit damit, verschachtelten Verweisen von Personen über defekte Links zu folgen.
– ebt
18. Januar 2014 um 16:48 Uhr
f = Character.toUpperCase(f);
l = Character.toUpperCase(l);
Da Sie wissen, dass die Zeichen in Kleinbuchstaben geschrieben sind, können Sie den entsprechenden ASCII-Wert subtrahieren, um sie in Großbuchstaben umzuwandeln:
char a="a";
a -= 32;
System.out.println("a is " + a); //a is A
Dies funktioniert nur, wenn der String ausschließlich aus ASCII-Zeichen besteht. Sprachen wie Französisch, Griechisch, Spanisch, Türkisch usw. haben Nicht-ASCII-Zeichen mit Groß-/Kleinschreibung. Dieser Ansatz würde in diesen Fällen nicht funktionieren …
– Mike Laren
8. Februar 2015 um 3:08 Uhr
Eigentlich dieser grundlegende Ansatz tut Arbeit für die gängigsten Nicht-ASCII-Zeichen in Französisch, Spanisch, Deutsch … zB éàöûñ … Wenn der OP also weiß, dass er nur mit solchen Zeichen umgehen muss, kann er der Einfachheit und Leistung halber bei dieser Methode bleiben.
– Sebastian
13. Oktober 2015 um 13:18 Uhr
Berechnungen mit Zeichen durchzuführen, um die Groß-/Kleinschreibung zu ändern, ist eine der schlimmsten Angewohnheiten, also nicht im 21. Jahrhundert! Es gibt mehr als ASCII-Zeichen!
Dies funktioniert nur, wenn der String ausschließlich aus ASCII-Zeichen besteht. Sprachen wie Französisch, Griechisch, Spanisch, Türkisch usw. haben Nicht-ASCII-Zeichen mit Groß-/Kleinschreibung. Dieser Ansatz würde in diesen Fällen nicht funktionieren …
– Mike Laren
8. Februar 2015 um 3:08 Uhr
Eigentlich dieser grundlegende Ansatz tut Arbeit für die gängigsten Nicht-ASCII-Zeichen in Französisch, Spanisch, Deutsch … zB éàöûñ … Wenn der OP also weiß, dass er nur mit solchen Zeichen umgehen muss, kann er der Einfachheit und Leistung halber bei dieser Methode bleiben.
– Sebastian
13. Oktober 2015 um 13:18 Uhr
Berechnungen mit Zeichen durchzuführen, um die Groß-/Kleinschreibung zu ändern, ist eine der schlimmsten Angewohnheiten, also nicht im 21. Jahrhundert! Es gibt mehr als ASCII-Zeichen!
– Floyd
17. Dezember 2015 um 8:49 Uhr
Wenn Sie das Apache Commons Lang Jar in Ihr Projekt aufnehmen, wäre die einfachste Lösung:
WordUtils.capitalize(Name)
nimmt Ihnen die Drecksarbeit ab. Siehe javadoc Hier
Alternativ haben Sie auch eine capitalizeFully(String)-Methode, die auch den Rest der Zeichen klein schreibt.
Der Verknüpfung Sie lieferten einen 404-Fehler!!!! kannst du es korrigieren??
– Visruth
5. Juli 2013 um 10:50 Uhr
14499400cookie-checkKonvertieren eines Zeichens in Großbuchstaben in Javayes
Welchen Teil der Antworten auf Ihre vorherige Frage haben Sie nicht verstanden? Meine Antwort dort enthält eine Antwort auf diese Frage.
– Bozo
12. September 2010 um 20:24 Uhr
@shep – Können Sie die Antwort von BalusC akzeptieren? Es wird zukünftigen Suchenden helfen.
– Charles Allen
9. Oktober 2017 um 2:19 Uhr