• ベストアンサー

倍角と半角

半角の"A"から、倍角の"A"を求めるような、 関数、または、求め方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

char ch = "A"; String ZENKAKU = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; String HANKAKU ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for( int i = 0; i < HANKAKU.length(); i++ ) { if ( ch == HANKAKU.charAt(i) ) { ch = ZENKAKU.charAt(i); } } 私も以前仕事で使ったのですが、JavaではOSによる文字コードの違いをサポートしていないため、自分で作るしかありませんでした。

その他の回答 (5)

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.5

ASCIIコードの範囲内でしたら、 char hankaku = 'A'; char zenkaku = (char)(hankaku + 0xFEE0); でも良さそうな気もしますが、カナ文字とかも 含むのであれば、#4さんがおっしゃっている ように別途テーブルを作る必要がありそうです。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#2のものです。 JAVAをVB(A)と間違えました。 申し訳ございません。 カナまで視野に入れると、対応テーブルを作り検索せねばならないと思います。 http://homepage1.nifty.com/georgeMI/han2zen.html Cですがご参考に。 半角側は0-255の中に収まるのですが、全角側がコード計算できるようにきれいに(規則正しく)対応してくれないと思います。それとカタカナの濁点・半濁点を全角では1字にするのが面倒でしょう。

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.3

char ch; ... if((半角の最小値)<=ch && ch<=(半角の最大値)){ ch = (char)(ch - (半角の最小値) + (全角Unicodeの最小値)); } ではどうでしょうか。 なんか汚いけど、「どうせ文字コード依存の処理だ」ということで。 あ、それから、Unicodeの中では、半角アルファベットも全角アルファベットも 連続して載っていることが前提条件となっています。たぶんそうなっていたと思います。 (大文字小文字は別個に処理する必要があるかもしれません)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

=JIS(A1) 半角の英数カナ文字を全角にする。 これでどうですか。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

StringUtil を使ってるやるようですが・・・。 参考URLにあるソースが 動きますでしょうか?

参考URL:
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/java/ccs/document/document_c6_s2.html

関連するQ&A