import Ġcom . j tran sc . charset . char sets . J Tran sc Charset Shift J IS Ċ import Ġcom . j tran sc . text . substr Ċ import Ġcom . j tran sc . text . ues cape Ċ import Ġcom . j tran sc . text . u quote Ċ import Ġcom . j tran sc . vfs . Resources V fs Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Ignore Ċ import Ġorg . junit . Test Ċ Ċ class ĠGenerate Shift J is Table Ġ{ Ċ ĉ @ Test Ċ ĉ @ Ignore Ċ ĉ fun Ġgenerate Shift J IS () Ġ{ Ċĉ ĉ val Ġshift Ġ= ĠResources V fs ( Generate Shift J is Table :: class . java )[" SHIFT J IS . TXT "]. readString () Ċĉ ĉ val Ġvalid Lines Ġ= ĠRegex ("^ (\\ w +) \\ s +( \\ w + )") Ċĉ ĉ var Ġs jis List Ġ= Ġ"" Ċĉ ĉ var Ġunicode List Ġ= Ġ"" Ċĉ ĉ for Ġ( line Ġin Ġshift . line Sequence ()) Ġ{ Ċĉĉ ĉ val Ġinfo Ġ= Ġvalid Lines . find ( line ) Ġ?: Ġcontinue Ċĉĉ ĉ val Ġs jis Ġ= Ġinfo . group Values [ 1 ]. parseInt 2 () Ċĉĉ ĉ val Ġunicode Ġ= Ġinfo . group Values [ 2 ]. parseInt 2 () Ċĉĉ ĉ sj is List Ġ+= Ġs jis . to Char () Ċĉĉ ĉ unicode List Ġ+= Ġunicode . to Char () Ċĉ ĉ } Ċĉ ĉ println ( sj is List . u quote ()) Ċĉ ĉ println ( unicode List . u quote ()) Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġname () Ġ{ Ċĉ ĉ val Ġs jis Ġ= ĠJ Tran sc Charset Shift J IS () Ċĉ ĉ Assert . assertArrayEquals ( byte ArrayOf (- 1 2 6 , Ġ- 9 6 ), Ġs jis . encode (" ãģĤ ")) Ċ ĉ } ĊĊ ĉ private Ġfun ĠString . parseInt 2 (): ĠInt Ġ{ Ċĉ ĉ if Ġ( this . startsWith (" 0 x ", Ġignore Case Ġ= Ġtrue )) Ġ{ Ċĉĉ ĉ return ĠInteger . parseInt ( this . substr ( 2 ), Ġ 1 6 ) Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ return ĠInteger . parseInt ( this ) Ċĉ ĉ } Ċ ĉ } Ċ }