fork download
  1. import java.nio.charset.Charset;
  2.  
  3. //プログラミングのお題スレ Part15
  4. //mevius.5ch.net/test/read.cgi/tech/1564310397/932
  5. //
  6. //932 名前:デフォルトの名無しさん[] 投稿日:2019/11/10(日) 21:37:46.78 ID:OK7x/7YO
  7. //文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
  8. //コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
  9. //
  10. //824F..8258
  11. //FF10..FF19
  12. //01234566789
  13. //
  14. //となる。なお、シフトJISには機種依存文字を含んで構わない。
  15. class Ideone
  16. {
  17. // static final Charset CHARSET = Charset.forName("MS932");
  18. static final Charset CHARSET = Charset.forName("Shift-JIS");
  19.  
  20. public static void main(String[] args)
  21. {
  22. int u = 0;
  23. int c = convert(u);
  24. for (int unicode = 1; unicode < 1048576 + 65536; unicode++)
  25. {
  26. int code = convert(unicode);
  27. if (unicode - u != code - c)
  28. {
  29. int len = unicode - u;
  30. if (len >= 3)
  31. {
  32. StringBuilder sb = new StringBuilder();
  33. for (int i = u; i < unicode; i++)
  34. sb.appendCodePoint(i);
  35. System.out.printf("UNICODE:%X..%X %s:%X..%X %s%n", u, u + len - 1, CHARSET, c, c + len - 1, sb);
  36. }
  37. u = unicode;
  38. c = code;
  39. }
  40. }
  41. }
  42.  
  43. static int convert(int unicode)
  44. {
  45. char[] utf16 = Character.toChars(unicode);
  46. String string = String.valueOf(utf16);
  47. return bytesToInt(string.getBytes(CHARSET));
  48. }
  49.  
  50. static int bytesToInt(byte... bytes)
  51. {
  52. int result = 0;
  53. for (byte b : bytes)
  54. result = result << 8 | b & 0xFF;
  55. return result;
  56. }
  57. }
  58.  
Success #stdin #stdout 0.5s 107336KB
stdin
Standard input is empty
stdout
UNICODE:0..7F Shift_JIS:0..7F 	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
UNICODE:391..3A1 Shift_JIS:839F..83AF ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ
UNICODE:3A3..3A9 Shift_JIS:83B0..83B6 ΣΤΥΦΧΨΩ
UNICODE:3B1..3C1 Shift_JIS:83BF..83CF αβγδεζηθικλμνξοπρ
UNICODE:3C3..3C9 Shift_JIS:83D0..83D6 στυφχψω
UNICODE:410..415 Shift_JIS:8440..8445 АБВГДЕ
UNICODE:416..42F Shift_JIS:8447..8460 ЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
UNICODE:430..435 Shift_JIS:8470..8475 абвгде
UNICODE:436..43D Shift_JIS:8477..847E жзийклмн
UNICODE:43E..44F Shift_JIS:8480..8491 опрстуфхцчшщъыьэюя
UNICODE:3000..3002 Shift_JIS:8140..8142  、。
UNICODE:3005..3007 Shift_JIS:8158..815A 々〆〇
UNICODE:3008..3011 Shift_JIS:8171..817A 〈〉《》「」『』【】
UNICODE:3041..3093 Shift_JIS:829F..82F1 ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん
UNICODE:30A1..30DF Shift_JIS:8340..837E ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ
UNICODE:30E0..30F6 Shift_JIS:8380..8396 ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
UNICODE:4E9E..4EA0 Shift_JIS:98B1..98B3 亞亟亠
UNICODE:51A9..51AB Shift_JIS:996F..9971 冩冪冫
UNICODE:58FB..58FD Shift_JIS:9AE4..9AE6 壻壼壽
UNICODE:6158..615A Shift_JIS:9CCC..9CCE 慘慙慚
UNICODE:7620..7622 Shift_JIS:E18B..E18D 瘠瘡瘢
UNICODE:7668..766A Shift_JIS:E199..E19B 癨癩癪
UNICODE:76B8..76BA Shift_JIS:E1AE..E1B0 皸皹皺
UNICODE:7F4C..7F4E Shift_JIS:E3A0..E3A2 罌罍罎
UNICODE:8F62..8F64 Shift_JIS:E780..E782 轢轣轤
UNICODE:904F..9052 Shift_JIS:E79F..E7A2 遏遐遑遒
UNICODE:9B27..9B2A Shift_JIS:E9A7..E9AA 鬧鬨鬩鬪
UNICODE:9ECE..9ED0 Shift_JIS:EA74..EA76 黎黏黐
UNICODE:9EFB..9EFD Shift_JIS:EA84..EA86 黻黼黽
UNICODE:9F5F..9F61 Shift_JIS:EA92..EA94 齟齠齡
UNICODE:FF10..FF19 Shift_JIS:824F..8258 0123456789
UNICODE:FF21..FF3A Shift_JIS:8260..8279 ABCDEFGHIJKLMNOPQRSTUVWXYZ
UNICODE:FF41..FF5A Shift_JIS:8281..829A abcdefghijklmnopqrstuvwxyz
UNICODE:FF61..FF9F Shift_JIS:A1..DF 。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚