2011-06-01 7 views
1

次のプログラムを実行して文字を入力するとき、出力ウィンドウの1つでは、明らかにそうでないときは文字が数字であると表示されます。どうして?任意の条件なしisDigit()が文字の場合はtrueを返す

JOptionPane.showMessageDialog(null, "Thit is a digit."); 

、それは常にそれが数字だと印刷されますので:意味

import javax.swing.JOptionPane; 

/** 
* This program demonstrates some of the Character 
* class's character testing methods 
* 
* 
*/ 
public class CharacterTest { 

public static void main(String[] args){ 
    String input; //To hold the user's input 
    char ch; //To hold a single character 

    //Get a character from the user and store 
    //it in the ch variable 
    input=JOptionPane.showInputDialog("Enter "+ 
      "any single character."); 

    ch= input.charAt(0); 

    //Test the character 
    if(Character.isLetter(ch)){ 
     JOptionPane.showMessageDialog(null, "This is a letter."); 
    } 

    if(Character.isDigit(ch));{ 
     JOptionPane.showMessageDialog(null, "Thit is a digit."); 
    } 

    if(Character.isLowerCase(ch)){ 
     JOptionPane.showMessageDialog(null, "That is a lowercase"+ 
       " letter"); 
    } 

    if(Character.isUpperCase(ch)){ 
     JOptionPane.showMessageDialog(null, "That is an uppercase"+ 
       " letter"); 
    } 

    if(Character.isSpaceChar(ch)){ 
     JOptionPane.showMessageDialog(null, "That is an uppercase"+ 
       " letter"); 
    } 

    if(Character.isWhitespace(ch)){ 
     JOptionPane.showMessageDialog(null, "That is an uppercase"+ 
       " letter"); 
    } 

    System.exit(0); 

} 
} 
+0

あなたの投稿に実際に返信する質問はありませんでした。 –

+0

あなたも答えはありませんが、誰もあなたを拾っていません。 – Blindy

答えて

8
if(Character.isDigit(ch));{ 
     JOptionPane.showMessageDialog(null, "Thit is a digit."); 
    } 

ところで、空白も空白も(Javaが2つを区別する方法は面白く)大文字ではありません。

+4

つまり、セミコロンを置く場所には注意してください。 – Adam

+0

ニースキャッチ。私はこの事態を避ける方法を知りました。私は良いIDEがそのような構造に注意を引くと思います。 –

+2

@Dilum、私の経験では、Eclipseは... – mre

関連する問題