人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

お世話になっております。JAVAに関しての質問です。

ラッパークラスCharacterのクラスメソッドisDisit/isLetter
に関して、これらはどういった引数が入れば(どういった状況なら)
isDisitでtrue、isLetterでfalseを返すようになるのでしょうか?
単純に、
char c1 = 65;
System.out.println(Character.isDigit(c1));
System.out.println(Character.isLetter(c1));
としても
false
true
が返ってきます。

ご存知の方がおりましたら
ご教授下さいますようお願いします。

●質問者: mimio17
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Char Java Out クラス メソッド
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● cynix
●20ポイント

http://ja.wikipedia.org/wiki/American_Standard_Code_for_Informat...

American Standard Code for Information Interchange - Wikipedia

数字のASCII (’0’?’9’ = 48?57) を入ればそうなるんでしょう。


char c1 = 48;


とか。

◎質問者からの返答

返答が遅れてしまい、申し訳ありません。

isDisit/isLetterともに確認できました!

数字のアスキーコードによるのですね。

ありがとうございました。


2 ● kurita0
●20ポイント

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Characte...(char):detail]

isDigit()は文字としてみたときに数字である場合にtrueを返します

例えばchar c1=48(=’0’)の場合はisDigit()でtrue,isLetter()でfalseとなります


char c;

c = 48; // = ’¥u0030’ = ’0’

System.out.println(Character.isDigit(c)); // true

System.out.println(Character.isLetter(c)); // false

System.out.println(Character.isDigit(’0’)); // true

System.out.println(Character.isLetter(’0’)); // false


c = 65; // = ’A’

System.out.println(Character.isDigit(c)); // false

System.out.println(Character.isLetter(c)); // true

System.out.println(Character.isDigit(’A’)); // false

System.out.println(Character.isLetter(’A’)); // true


// 0(全角数字)

System.out.println(Character.isDigit(’0’)); // true

System.out.println(Character.isLetter(’0’)); // false

◎質問者からの返答

返答が遅くなってしまい、申し訳ありません。

アスキーコードの数字に対応することが確認

できました。ありがとうございました。


3 ● naoya2k
●20ポイント

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Character....

Character (Java 2 $B%W%i%C%H%U%)!<%`(J SE v1.4.0)

isDigit(char ch)は、chで指定された文字が数字のときにtrueが返ります。

isLetter(char ch)は、chで指定された文字がアルファベットなときにtrueが返ります。

数字はアルファベットじゃないので、数字をあらわすUnicodeを入れてやれば、isDigitがtrueでisLetterがfalseになります。

具体的には48?57が文字’0’?文字’9’に対応するUnicodeなので、そのあたりです。

http://www.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt

もう少し詳細には、このURLにあるテキストファイル中のDecimal Digitって書かれている表にある数がそれにあたります。

http://www.kanzaki.com/bmac/9606.html

PC Break (3) - ?????????????????H

もし「文字コード」という概念を理解できていないのであれば上記のサイトが参考になると思います。


また単純にisDigit(ch)==trueかつisLetter(ch)==falseとなるchを求めたいのであれば、下記のJavaプログラムを実行すればOKです。

public class Test {

public static void main(String args[]) {

for (char i = 0; i < 0xffff; i++) {

if (!Character.isLetter(i) &&

Character.isDigit(i)) {

System.out.println(Integer.toString(i));

}

}

}

}

◎質問者からの返答

返答が遅くなってしまい、申し訳ありません。

アスキーコード(Unicodeでも)の数字に対応することが確認できました。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ