' P '

whatever I will forget

Java charの結合

最近やたらjavaのcharに悩まされます。

この問題

困ること

下記のようなことはできません。
unicodeのコード番号が表示されます。

char a = 'a';
char b = 'b';
char c = 'c';
System.out.println(a + b + c); // prints unicode code

stackoverflow.com

解決法

StringBuilderを使うか、ちょっとそこまでするのは面倒、ってときは下記のテクニックが使えます。

char a = 'a';
char b = 'b';
char c = 'c';
String out = "" + a + b + c;
System.out.println(out); // abc

stackoverflow.com

char系の困ったを解決記事リンク

mankozooyork.hatenablog.com

mankozooyork.hatenablog.com

豆知識

AtCoderではないですが、こんなことができるのかーと発見したのでメモ

char A = 'A';
char a = 'a';
char B = 'B';
B += A -a;
System.out.println(B);

outputは何になるでしょう? Aのunicode番号は41, aの番号は61なので、Bの42から20が足されてbと出力されます!
なのでunicodeからアルファベットを大文字小文字にしたい場合はこんな方法もあります(使うことなさそー白目)

www.utf8-chartable.de