• ベストアンサー

Java 半角全角の区別について

こんばんは。 Javaのプログラミングで質問なのですが、 ある任意の一文字が(記号含む)半角か全角かで 処理を分けたいのですが、 どのようにコーディングしたら言いのでしょうか? イメージとしては画面で入力された文字が全角なら登録可能 としたいのですが。。 アドバイスよろしくお願いいたします。

noname#229153
noname#229153
  • Java
  • 回答数3
  • ありがとう数2

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

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

Stringで拾って、getBytesの戻りのbyte配列の長さで判定してはどうでしょうか?

noname#229153
質問者

お礼

回答ありがとうございます。 Character型ばかり考えていたので、、Stringでためしてみます!

その他の回答 (2)

  • hk_java2
  • ベストアンサー率44% (8/18)
回答No.3

Ascii文字の判定なら以下でも可能。 StringUtils.isAsciiPrintable(String str)

noname#229153
質問者

お礼

回答ありがとうございます。 文字コードに関するものが苦手で思いつきませんでした。 試してみます☆

noname#91723
noname#91723
回答No.2

文字列をcharにして、Asciiかどうかだけ、文字と比較してはどうですか?あとは、どこかのライブラリを使うとか。

noname#229153
質問者

補足

ご回答ありがとうございます。 すみませんが、charにしたあと、Asciiと比較するにはどのように比較したらよいのでしょうか。 よろしくお願いいたします。

関連するQ&A

  • 全角から半角に変換する

    Javaで、文字列の中に全角があれば単純に半角に変換するような処理をしたいです。具体的には、次のような文字列があった場合、以下のように変換したいです。 <変更前> あ亜アアaaAA11%% <変更後> ア亜アアaaAA11%% つまり、以下のようにしたいです ・全角ひらがな→半角カタカナ ・漢字:何もしない ・全角カタカナ→半角カタカナ ・半角カタカナ:何もしない ・半角アルファベット→何もしない ・全角アルファベット→半角アルファベット ・半角数字→何もしない ・全角数字→半角数字 ・半角記号→何もしない ・全角記号→半角記号 上記のように書くと複雑に見えますが、要は基本的に半角に相当する文字がある場合には半角にしたいだけです。Googleで探してみましたが、Javaで標準で上記のような処理を出来るようなメソッドを見つけることができませんでした。このようなメソッドは標準で存在しますでしょうか? 自作する場合、いくつかアプローチがあると考えられますが、最もパフォーマンスを速くしたい場合にはどのような作り方にした方がよいでしょうか。お手数ですが、宜しくお願いします。 <追伸> プレビューで見たら、半角の文字が全角に自動的に変換されてしまいました。。 例文からはわかりにくいかも知れませんが、宜しくお願いします。。

    • ベストアンサー
    • Java
  • 半角を全角に

    Javaで、半角文字を全角文字に変換する方法を教えてください!!!

    • ベストアンサー
    • Java
  • Javaで、半角カナを2バイトとしてカウントしたい

    JavaでSJISで入力された文字列(全角、半角、英字、記号等混在)の桁数チェックで、 入力された半角カナのバイト数を、2バイトとみなしてカウントしたいと考えています。 例えば  全角の"テスト"の場合、バイト数は6  半角の"テスト"の場合も、バイト数は6 Javaで以下の様にコーディングしたところ、半角カナ部分はとりあえずうまく行ったのですが、 System.out.println 半角の"テスト".getBytes("EUC-JP").length; ->6 特殊な文字「まるの1、まるの2」等で試すと、特殊な文字のバイト数が1バイトとして カウントされてしまいます。 ※まるの1、まるの2は、この質問フォームで入力できないのでこの記載としています。 以降は(1),(2)と記載します。いずれも全角1文字の文字のことです。 System.out.println "(1)".getBytes("EUC-JP").length;   ->1      ※希望結果は2バイト System.out.println "(2)スト".getBytes("EUC-JP").length;   ->5      ※希望結果は6バイト 特殊な文字「(1)、(2)」や半角カナ(2バイトとしてカウント)を含めて、 簡単にバイト数をカウントすることはできないでしょうか。

  • ATOKの単語登録を半角だけ又は全角だけにしたい

    ATOKの単語登録を半角だけ又は全角だけにしたい Windows XPでATOK 2005を使っていますが、単語登録をすると、例えば次のように、半角文字と全角文字と両方登録されます。 登録時にキー入力した文字:2010年 (※数字の部分を半角で入力して登録しました) 実際に登録された文字:2010年、2010年 (※数字の部分が半角のものと全角のものと両方登録されました) 単語登録の時に全角で入力したものは全角だけで、半角で入力したものは半角だけで登録したい(つまり、両方は登録したくない)のですが、そのようにするにはどうしたらいいでしょうか。

  • マクロで全角を一括で半角に置換したいです

    マクロで下記の作業を行いたいのですがよくわかりません。 アドバイスお願いします。 ■作業内容 『Excelでsheetにある全角の文字を一括で半角に置換したい』 ※基本的に半角にできるもの(カナ・英数字・記号)は全て半角にしたいのですが、『~』だけは半角にしたくありません。 ■画面のイメージ ・sheet1にはマクロを組み込んだボタン画面 ・sheet2に全角のデータA ・sheet3にデータAを半角にしたデータA’が返される ■作業イメージ (1)sheet1のボタンをクリック (2)sheet2のデータを半角にしてsheet3に返す (3)『~』を『~』に置換し直す。 すみませんがよろしくお願いいたします。

  • Javaプログラミングについて

    コマンドラインにキーボードで入力した文字をそれぞれの仕様に合わせて作るんですが文字の判別方法が分からなくて困ってます。 (1)半角英数字記号文字10桁(固定) (2)全角文字、半角禁止、250文字まで登録可能@必須 (3)全角文字、半角禁止、250文字まで登録可能@電話番号 (4)半角英数字記号文字ー必須。8桁 (5)全角、半角英数字記号文字混在可。500文字(半角換算)まで登録可能最後の全角文字で、501バイトにならないように注意 以上の5つが仕様です。どなたか教えて下さい。

  • 全角→半角

    キーボードの右側に、数字のキーがありますよね。 今まで半角で打てたのに、突然全角数字が出てしまうようになってしまいました。 普通の文字入力が半角でも全角でも、その数字のキーは半角が出るようになっていたのですが・・・。どうすれば半角に直りますか。

  • 半角スペースの見分け方を教えて下さい。

    初歩的な質問ですいません。 Javaで簡単なプログラムをコーディングしているのですが コンパイルエラーになりどうやら全角スペースが含まれているようです。 ただ、何度やり直してもエラーとなります。 VistaのノートPCを利用していますが半角スペースは文字入力が "A"になっている状態で入力しています。 カーソルで何度確認しても全角文字・全角スペースはないのですが・・ 基本的なことですいません。 何かご説明頂ける方お願いします。

  • Web上における全角/半角について

    Web上における全角/半角について http://bekkoame.okwave.jp/qa6240322.html の回答7氏のお礼欄にて質問者が >コンピュータの世界で半角を使用するのは、ファイル名や、コーディングのときです。一般文章では、なるべくなら、全角を使うべきです。これは、コンピュータでなく、文章をを綺麗に見せるためのマナーですね。 と述べています。 私個人の経験ではWebに限らずコンピュータで作成する文書は、ひらがな・カタカナ・漢字は全角、英数字・記号は半角(もちろん一部例外はあり)にしたほうが読みやすいと思うのですが、一般的には上記質問者の言い分は正しいのでしょうか?

  • 半角から全角に変換してくれない

    WEBページで情報を、特に住所を入力するときに全角のみ許可されていることがよくあります。 何故半角が受け付けられないのでしょうか? 半角全角変換なんて容易だと思えるのですが、文字列の転送時に起こるのでしょうか?そうだとしてもブラウザ側で処理すれば良いと思います。 単にユーザビリティはあまり重視されていないからですか?

    • ベストアンサー
    • HTML

専門家に質問してみよう