Was ich über Java 6 recherchiert habe

Überblick

Meine Java-Kenntnisse haben bei "1.4" fast aufgehört. Um die aktuelle Situation zu ändern, werde ich sie nach und nach aktualisieren.

Derzeit läuft die App, die ich hauptsächlich im Geschäftsleben berührt habe, mit "5". Ursprünglich war es eine App, die vor "1.4" erstellt wurde, und die alte Beschreibung bleibt erhalten. Durch das Versions-Upgrade dieser App werde ich diesmal nur beschreiben, was ich über die in "6" hinzugefügten Funktionen untersucht habe.

Was ich nachgeschlagen habe

War Java6 eine Menge Desktop-Verbesserungen? Vielleicht wird es in einer App verwendet, die ich bei der Arbeit berühre? Ich habe zwei Funktionen untersucht, die ich dachte.

Unicode-Normalisierung

Eine Unicode-Normalisierung ist jetzt möglich. Plötzlich schwierig ...

Referenz: Unicode-Normalisierung

Es gibt vier Arten der Unicode-Normalisierung:

Art Überblick
NFC Nach der Zersetzung basierend auf der kanonischen Äquivalenz wird die Resynthese basierend auf der kanonischen Äquivalenz durchgeführt
NFD Zerlegung basierend auf kanonischer Äquivalenz
NFKC Nach der Zersetzung basierend auf der Kompatibilitätsäquivalenz wird die Resynthese basierend auf der kanonischen Äquivalenz durchgeführt
NFKD Zerlegung basierend auf Kompatibilitätsäquivalenz

――Was ist Synthese? Verarbeitung, die eine kombinierte Zeichenfolge in ein synthetisiertes Zeichen konvertiert

――Was ist Demontage? Verarbeitung, die synthetisierte Zeichen in kombinierte Zeichenfolgen konvertiert

--Was ist eine kombinierte Zeichenkette? Eine Zeichenfolge, die aus mehreren Zeichen besteht, jedoch durch ein einzelnes Zeichen dargestellt wird

--Was ist ein zusammengesetzter Charakter? Zeichen wie "ga", "gi", "gu" usw., die durch Kombinieren von "ka", "ki", "ku" und Trübung (") als ein Zeichen ausgedrückt werden. Referenz: [Zusammengesetzte Zeichen](https://ja.wikipedia.org/wiki/%E5%90%88%E6%88%90%E6%B8%88%E3%81%BF%E6%96%87 % E5% AD% 97)

Unicode-Normalisierungsbeispiel

System.out.println("1:Ha-> " + Normalizer.normalize("Ha", Normalizer.Form.NFC));
System.out.println("2:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFC));
System.out.println("3:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFC));
System.out.println("4:Wenn-> " + Normalizer.normalize("Wenn", Normalizer.Form.NFC));
System.out.println("5:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFC));
System.out.println("6:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFC));
System.out.println("7:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFC));
System.out.println("8:㍉ -> " + Normalizer.normalize("㍉", Normalizer.Form.NFC));
System.out.println("9:① -> " + Normalizer.normalize("①", Normalizer.Form.NFC));

NFC.jpg

System.out.println("1:Ha-> " + Normalizer.normalize("Ha", Normalizer.Form.NFKC));
System.out.println("2:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFKC));
System.out.println("3:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFKC));
System.out.println("4:Wenn-> " + Normalizer.normalize("Wenn", Normalizer.Form.NFKC));
System.out.println("5:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFKC));
System.out.println("6:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFKC));
System.out.println("7:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFKC));
System.out.println("8:㍉ -> " + Normalizer.normalize("㍉", Normalizer.Form.NFKC));
System.out.println("9:① -> " + Normalizer.normalize("①", Normalizer.Form.NFKC));

NFKC.jpg

System.out.println("1:Ha-> " + Normalizer.normalize("Ha", Normalizer.Form.NFD));
System.out.println("2:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFD));
System.out.println("3:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFD));
System.out.println("4:Wenn-> " + Normalizer.normalize("Wenn", Normalizer.Form.NFD));
System.out.println("5:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFD));
System.out.println("6:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFD));
System.out.println("7:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFD));
System.out.println("8:㍉ -> " + Normalizer.normalize("㍉", Normalizer.Form.NFD));
System.out.println("9:① -> " + Normalizer.normalize("①", Normalizer.Form.NFD));

NFD.jpg

System.out.println("1:Ha-> " + Normalizer.normalize("Ha", Normalizer.Form.NFKD));
System.out.println("2:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFKD));
System.out.println("3:Ba-> " + Normalizer.normalize("Ba", Normalizer.Form.NFKD));
System.out.println("4:Wenn-> " + Normalizer.normalize("Wenn", Normalizer.Form.NFKD));
System.out.println("5:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFKD));
System.out.println("6:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFKD));
System.out.println("7:Pa-> " + Normalizer.normalize("Pa", Normalizer.Form.NFKD));
System.out.println("8:㍉ -> " + Normalizer.normalize("㍉", Normalizer.Form.NFKD));
System.out.println("9:① -> " + Normalizer.normalize("①", Normalizer.Form.NFKD));

NFKD.jpg

Als ich den obigen Code ausprobierte, NFC hat keine Konvertierung. In NFKC wird Katakana mit halber Breite in Katakana mit voller Breite konvertiert, und Sonderzeichen werden in die entsprechenden Zeichen konvertiert. NFD konvertiert kein Katakana mit halber Breite. Das schlammige Geräusch (halbtrübes Geräusch) wird in einen schlammigen Punkt (halbtrübes Punkt) und ein klares Geräusch unterteilt. Keine Konvertierung für Sonderzeichen. In NFKD wird Katakana mit halber Breite in Katakana mit voller Breite unterteilt, und schlammiger Klang (halbtrüber Ton) wird in schlammigen Punkt (halbtrüber Punkt) und klaren Klang unterteilt. Sonderzeichen werden in die entsprechenden Zeichen umgewandelt. ist geworden.

Referenz: Unicode-Normalisierung

Durch die Verwendung von "NFKC" scheint es als Methode zum Konvertieren von Kana mit halber Breite in Kana mit voller Breite verwendet werden zu können. Es scheint einige Orte zu geben, an denen man vorsichtig sein muss.

String before = "Umwandlung von Hankaku Kana in Kana in voller Breite";
String after = Normalizer.normalize(before, Normalizer.Form.NFKC);
System.out.println(before);
System.out.println(after);

Clipboard08.jpg

http://d.hatena.ne.jp/stealthinu/20140826/p1

Es gibt kein Problem mit dem oben genannten, aber im folgenden Fall dachte ich, dass die Kreismarkierung in voller Breite (¥) so ausgegeben wird, wie sie ist. Es wurde konvertiert und ausgegeben.

String before = "Kaffeemilch ¥ 110";
String after = Normalizer.normalize(before, Normalizer.Form.NFKC);
System.out.println(before);
System.out.println(after);

coffee.jpg

Der Zeichencode lautet wie folgt.

before:ff7a ff70 ff8b ff70 725b 4e73 20 ffe5 31 31 30 
after :30b3 30fc 30d2 30fc 725b 4e73 20 a5 31 31 30

Wenn Sie Kana mit halber Breite in Kana mit voller Breite konvertieren, ist es möglicherweise besser, eine Zuordnungstabelle und eine Logik zu erstellen, die übereinstimmende Zeichen konvertiert.

Kopie des Arrays

Sie können ein Array mit Arrays.copyOf kopieren.

String[] before = {"Kaffee", "Milch", "110 Yen"};
String[] after = Arrays.copyOf(before, before.length);
System.out.println("before:" + Arrays.toString(before));
System.out.println("after :" + Arrays.toString(after));
before[0] = "Erdbeere";
after[2] = "150 Yen";
System.out.println("before:" + Arrays.toString(before));
System.out.println("after :" + Arrays.toString(after));
before:[Kaffee,Milch,110 Yen]
after :[Kaffee,Milch,110 Yen]
before:[Erdbeere,Milch,110 Yen]
after :[Kaffee,Milch,150 Yen]

Es ist eine tiefe Kopie. Der toString der Arrys-Klasse ist eine in "1.5" hinzugefügte Methode.


Als nächstes werde ich "7", "8" und "9" zusammen überprüfen.

Recommended Posts

Was ich über Java 8 recherchiert habe
Was ich über Java 6 recherchiert habe
Was ich über Java 9 recherchiert habe
Was ich über Java 7 recherchiert habe
Was ich über Java 5 recherchiert habe
Was ich über Java-Lernen recherchiert habe
Was ich über Kotlin gelernt habe
Was ich mit Java Gold gelernt habe
Was ich mit Java Silver gelernt habe
Über die Java-Schnittstelle
[Java] Informationen zu Java 12-Funktionen
Was ist java
[Java] Über Arrays
Nehmen Sie, was Sie über Java-Reflexion gelernt haben
Etwas über Java
Wo ist mit Java?
Informationen zu Java-Funktionen
Was ist Java <>?
Über Java-Threads
[Java] -Schnittstelle
Was ist java
Was ich gelernt habe
Über die Java-Klasse
Informationen zu Java-Arrays
Über Java-Vererbung
Über Schnittstelle, Java-Schnittstelle
Was ich aus der Java-Geldberechnung gelernt habe
Über Java Var
Über Java Literal
Informationen zu Java-Befehlen
Woran ich dachte, als ich anfing, von Java nach Kotlin zu migrieren
Zusammenfassung dessen, was ich über Spring Boot gelernt habe
[Java] Was soll ich zum Schreiben von Dateien verwenden?
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
Informationen zur Java-Protokollausgabe
Informationen zur Java-Funktionsschnittstelle
Java, über zweidimensionales Array
Über die Klassenteilung (Java)
Über [Java] [StreamAPI] allMatch ()
Informationen zur Java StringBuilder-Klasse
Ich habe zuerst Java touched berührt
[Java] Über Singleton Class
Ich habe zuerst Java touched berührt
Informationen zur Bindung von Java-Methoden
Ich habe zuerst Java touched berührt
[Java] Über anonyme Klassen
Informationen zu Aufteilungsmethoden (Java)
Was ist Java-Kapselung?
[Java Silver] Informationen zur Initialisierung
Was ich gelernt habe ② ~ Mock ~
Informationen zur Java-Array-Liste
Über Java-Polymorphismus super ()
Was ich gelernt habe ~ ~ DJUnit ~
Informationen zur Vererbung (Java Silver)
Informationen zur Java String-Klasse
Informationen zu Java-Zugriffsmodifikatoren
Über Java-Lambda-Ausdrücke
Was ist Java-Technologie?
Ich habe zuerst Java berührt