• 締切済み

全角・半角の識別判断の方法を教えてください

はじめまして、java初心者です。 "半角の数字1~3を入力したら、その値(1~3)を返す"プログラムを組みたいのですが、 全角の数字1~3を入力しても値が返ってしまいます。 全角で入力された場合、エラー表示を出したいのですが、 どういうプログラムを組めばいいのでしょうか? お手数ですが教えてください。<(__)>

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.3

Javaプログラムの上では文字はすべて16ビットUnicodeなので、バイト数での判定は(簡単には)できません。 ふつうなら、'1'と'1'の判定区別は何も苦労なくできるはずなので、質問者がどんなコードで「全角の数字1~3を入力しても値が返ってしまいます」になるのか、それを知りたいです。

lucky1995
質問者

お礼

返事ありがとうございます。 ソースは下記の通りです。よろしくお願いいたします<(__)> public class IniMenu { public int sentaku() throws IOException { int commandReturn = 0; int commandInput = 0; BufferedReader commandNo = new BufferedReader(new InputStreamReader(System.in)); String commandString = commandNo.readLine(); try { commandInput = Integer.parseInt(commandString); } catch (Exception e) {} if (commandInput == 1 || commandInput == 2 || commandInput == 3) { commandReturn = commandInput; break; } } }

全文を見る
すると、全ての回答が全文表示されます。
  • marohei
  • ベストアンサー率22% (8/36)
回答No.2

入力された文字長を取得すればよいのではないのでしょうか? 半角1byte、全角2byteなので、これで条件文を加えればよいと思いますが・・・。

lucky1995
質問者

お礼

返事ありがとうございます<(__)> なるほどですね、byteで判断させればいいのですね。 しかしながら超が付くほどjava初心者なもので、 ソースが思いつきません。。

全文を見る
すると、全ての回答が全文表示されます。
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

> 全角の数字1~3を入力しても値が返ってしまいます。 どげなコードね? (ふつうに書けば、それはあり得ないが…。)

lucky1995
質問者

お礼

返事ありがとうございます。 入力された値をIntegerで整数化し、 もし整数化された値が" 1 or 2 or 3 "なら、 その数値(1~3)をreturnで返せというif文で作った感じなのですが、 全角でも認識してしまいます。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 全角→半角

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

  • 全角文字を半角に変換する

    全角文字を半角へ、またはその半角文字を全角にする 関数もしくは処理がありましたら教えていただきたいの ですが、宜しくお願い致します。 また変換する文字はアルファベットと数字で、漢字とかが 入力されたらエラー表示させる例を提示していただけると たいへんありがたいです。

  • フォントの半角・全角について

    フォントの半角・全角について、もしご存知のかたがいらっしゃいませいたら、どうぞお教えください。 Word2000、IME2000で文章を作成する際、等幅フォント(MS-ゴシック)を使っております。 このとき、全角の数字を10個並べた場合は 半角の数字を20個並べたときと同じ幅になると思っていたのですが、 行の右端で、やはり半角数字が少しはみ出てしまいます。 これは、文字と文字の間の空白の関係で仕方ないことなのでしょうか? 以前、ワープロを使っていた際には、 半角といえば全角の文字の幅のきっちり半分だったのですが、 パソコンの場合はこれは不可能なのでしょうか? また、数字に関して、「半角」「全角」という表現はおかしいのでしょうか。 「直接入力」と「全角」という表現が適切なのでしょうか。

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

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

    • ベストアンサー
    • Java
  • 全角、半角の判別

    なげられてきた値が全角の場合にエラーをだしたいので PHPにて全角、半角のチェックを行いたいのですが なにか便利な関数などあるのでしょうか? また、どのような処理をすればいいのでしょうか? 単純に全角を半角に変換してくれる i18n_ja_jp_hantozenを使うことも考えましたが 全角の特殊文字などの場合に文字化けを起こす可能性もあると思い なんとかエラー表示させたく質問させていただきました。 よろしくご教授ください。 環境: RedhatLinux6.2J apache-1.3.12-0jp1 php-3.0.15_i18n_ja-0vl2 postgresql-7.0.2-2.i386

    • ベストアンサー
    • PHP
  • エクセルの入力、全角半角について教えて下さい。

    このたび、仕事で住所録を入力することになりました。数千件あります。フォーマットは決まっています。例えば番地「1-2-3」があるとします。あるところには数字は半角入力、ハイフンは全角入力となります。またあるところにはすべて全角で入力となります。初心者なので数字は半角で入力していますが、ハイフンは自信がなく「ほ」のキーを打ち込んだ後、スペースキーで変換しています。そして、また数字を打って「ほ」と打ってスペースで変換しています。このような入力方法だととても時間がかかってしまいます。もっと時間短縮な打ち方があれば教えて下さい。宜しくお願いします。

  • Webフォームにおける数字入力時の半角・全角について

    Webフォームで住所などを入力する時に 数字入力のところで、 ●電話番号は半角 ●住所の番地は全角 ●郵便番号は半角 となっているサイトって結構ありますよね。 正しい数字を入れているにもかかわらず、 上記の「半角・全角」の決まりを守らないと エラーになって再入力させられます。 すごくややこしいんですが、 なぜこのようになってるのでしょうか? 不親切な仕様ですよね 例えば、このようには出来ないのでしょうか?↓ ●電話番号も住所の番地も半角(または全角) に統一する。もしくは ●半角でも全角でもどちらでも良い 上記どちらかには出来ないものなのでしょうか? 上記を実現するには、プログラムの実装が難しいんでしょうか? もちろん、上記を実現していて、わかりやすいユーザインターフェースのサイトも あるにはあると思いますが。

  • 半角\を全角に変更するには?

    EXCELで例えば、半角で\1,234-になっている数値を 表示形式で全角表示させる方法はないでしょうか? ”¥”[DBNum3][$-411]#,##0”―” でやってみましたが、¥だけは半角のままです。 数字と―は全角になります。 \は、全角¥にはならないのでしょうか? 勝手に、半角\に変換されてしまいます。 ご教授下さい。 よろしくお願いします。

  • 全角と半角を確認するには

    受け取ったデータ表の中で全角と半角が入り混じっている場合、セルによっては半角「A」とか全角「A」に入力モードが切り替わって判別できるものもありますが、全角なのにそのセルをポインタすると半角モードのままというセルもあります。(半角だとカウントせず、全角だとカウントされるので全角だと判断できます) どうしてなのか実験してみたところ、全角で入力後に半角での入力規則を設定しているみたいです。 この判別を簡便にする方法はありますか。 全角か半角か判別して回答をしてくれるような数式はありますか? (例えば、作業列に「全」「半」などと表示されるような) データの種類が多いため意図的に全角、半角の使い分けを入れている箇所もあるようなのですが。

  • PHPでの全角、半角判断について

    PHP5にて、入力フォムから入力された文字を全角か半角か判断しています。 半角だとフラグを立ててエラーにしております。 しかし、「ソ」だけ全角で入力しても 半角と判断されてしまい困っております。 0x5c と関係していると思うのですが 対処方法がわかりません。 ご教示頂けると助かります。 //名前(性)フリガナ if($_POST['name3'] == ""){ echo "【名前(性)フリガナ】が未入力です。<BR>"; $errflg = 1; } $len = strlen($_POST['name3']); $mblen = mb_strlen($_POST['name3'], "Shift_JIS") * 2; if($len != $mblen){ $errflg = 1; } 以上、宜しくお願いいたします。

    • 締切済み
    • PHP