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);
Wie würde ich die F- und L-Variablen in Großbuchstaben konvertieren lassen?
Antworten:
Sie können
Character#toUpperCase()
dies verwenden.char fUpper = Character.toUpperCase(f); char lUpper = Character.toUpperCase(l);
Es gibt jedoch einige Einschränkungen, da der Welt viel mehr Zeichen bekannt sind, als jemals in den 16-Bit-
char
Bereich passen können. Siehe auch folgenden Auszug aus dem Javadoc :quelle
Anstatt vorhandene Dienstprogramme zu verwenden, können Sie die folgende Konvertierung mithilfe einer booleschen Operation versuchen:
In Großbuchstaben:
char upperChar = 'l' & 0x5f
Kleinbuchstaben:
char lowerChar = 'L' ^ 0x20
Wie es funktioniert:
Binär-, Hex- und Dezimaltabelle:
------------------------------------------ | Binary | Hexadecimal | Decimal | ----------------------------------------- | 1011111 | 0x5f | 95 | ------------------------------------------ | 100000 | 0x20 | 32 | ------------------------------------------
Nehmen wir ein Beispiel für Small
l
toL
Conversion:Die binäre UND-Verknüpfung:
(l & 0x5f)
l
Zeichen hat ASCII 108 und01101100
ist binäre Repräsentation.1101100 & 1011111 ----------- 1001100 = 76 in decimal which is **ASCII** code of L
Ähnlich die
L
zurl
Umwandlung:Die binäre XOR-Operation:
(L ^ 0x20)
1001100 ^ 0100000 ----------- 1101100 = 108 in decimal which is **ASCII** code of l
quelle
Character.toUpperCase()
. Jeder Benutzer sollte verstehen, dass nichts Nicht-ASCII verarbeitet wird.c | 0x20
stattc ^ 0x20
für Kleinbuchstaben sein. Andernfalls, wenn das Zeichen bereits in Kleinbuchstaben geschrieben ist, konvertiert Ihr Code es in GroßbuchstabenSchauen Sie sich die
java.lang.Character
Klasse an, sie bietet viele nützliche Methoden zum Konvertieren oder Testen von Zeichen.quelle
quelle
System.out.println(first.substring(0,1).toUpperCase()); System.out.println(last.substring(0,1).toUpperCase());
quelle
Da Sie wissen, dass die Zeichen in Kleinbuchstaben geschrieben sind, können Sie den entsprechenden ASCII-Wert subtrahieren, um sie in Großbuchstaben zu setzen:
char a = 'a'; a -= 32; System.out.println("a is " + a); //a is A
Hier ist eine ASCII-Tabelle als Referenz
quelle
é
à
ö
û
ñ
... Wenn der OP also weiß, dass er sich nur mit solchen Zeichen befassen muss, kann er sich an diese Methode halten der Einfachheit und Leistung halber.Wenn Sie das Apache Commons Lang Jar in Ihr Projekt aufnehmen, ist die einfachste Lösung:
kümmert sich um die ganze Drecksarbeit für Sie. Sehen Sie den Javadoc hier
Alternativ haben Sie auch eine CapitalizeFully (String) -Methode, die auch den Rest der Zeichen in Kleinbuchstaben schreibt.
quelle
Sie können .toUpperCase () direkt auf String-Variablen oder als Attribut auf Textfelder anwenden. Ex: -
String str; TextView txt; str.toUpperCase();// will change it to all upper case OR txt.append(str.toUpperCase()); txt.setText(str.toUpperCase());
quelle
Ich denke, Sie versuchen, das erste und letzte Zeichen jedes Wortes in einem Satz mit einem Leerzeichen als Trennzeichen groß zu schreiben.
Kann durch gemacht werden
StringBuffer
:public static String toFirstLastCharUpperAll(String string){ StringBuffer sb=new StringBuffer(string); for(int i=0;i<sb.length();i++) if(i==0 || sb.charAt(i-1)==' ' //for first character of string/each word || i==sb.length()-1 || sb.charAt(i+1)==' ') //for last character of string/each word sb.setCharAt(i, Character.toUpperCase(sb.charAt(i))); return sb.toString(); }
quelle
Die einfachste Lösung für Ihren Fall - ändern Sie die erste Zeile und lassen Sie sie genau das Gegenteil tun:
Natürlich lohnt es sich auch, den Namen zu ändern.
quelle