Beim Programmieren von Wettbewerben mit Java hatte ich das Gefühl, dass der Umgang mit dem Char-Typ kompliziert war, und beschloss, ihn zusammenzufassen.
Der char-Typ speichert hexadezimale Unicode-Zeichen. Zu diesem Zeitpunkt hat der Zeichentyp einen numerischen Wert, wenn das Unicode-Zeichen in eine Dezimalzahl konvertiert wird. Wenn Sie beispielsweise einer Variablen vom Typ int einen Zeichentyp '1' zuweisen, können Sie ihn als numerischen Wert von 49 behandeln.
int c = 'a';
System.out.println(c);
//49 wird ausgegeben
(char) (numerischer Wert) wird zum char, das dem numerischen Wert entspricht.
char c = (char)97;
System.out.println(c);
//'a'Wird ausgegeben
Es gibt Zeiten, in denen Sie eine Char-Typ-Nummer in einen Int-Typ konvertieren möchten, z. B. wenn Sie mit String.charAt (Index) eine Nummer als Char-Typ aus einer Zeichenfolge erhalten, in der die Nummern aufgelistet sind. Wie oben erwähnt, ist es ein anderer numerischer Wert, wenn Sie versuchen, den char-Typ als int-Typ zu verwenden. In diesem Fall wird Character.getNumericValue (char c) verwendet.
char c = '1';
int value = Character.getNumericValue(c);
//value == 1
Wenn Sie dagegen eine int-Typnummer in einen char-Typ konvertieren möchten, fügen Sie sie zu '0' hinzu.
int a = 1;
char c = (char)('0'+a);
//c == '1'
Die Nummern des Zeichentyp-Alphabets sind fortlaufend, z. B. 97 für Zeichentyp 'a'und 98 für' b '. Daher kann jedes Alphabet von der for-Anweisung wie folgt behandelt werden.
char c = 'a';
for(int i = 0; i < 26; i++){
System.out.print(c);
c++;
}
//abc...Wird ausgegeben
Speichern Sie in einem Array, wie viele von jedem Alphabet in der Zeichenfolge enthalten sind.
String S = "abbcccdefg";
int[] a = new int[26];
for(int i = 0; i < S.length(); i++)
a[S.charAt(i)-'a']++;
Auch wenn Sie sich nicht an die Zahl 'a' erinnern, können Sie sie als Zahl behandeln, sodass es kein Problem gibt.
Recommended Posts