0
int s;

number2=input.next();

for (int i=0;i<number2.length();i++){ 

    s=(int)(number2.charAt(i));

    while ((s<48)||(s>57)){
    System.out.println("Enter the amount");
    number2=input.next();
    s=number2.charAt(i);    
     }

}   

このコードを使用すると、整数のみを生成できます。double を decimal で生成したい場合、どうすればそれを行うことができますか?

4

3 に答える 3

1

あなたはだますことができます...

String text = "123";
boolean isDouble = false;
boolean isInt = false;
try {
    Double.parseDouble(text);
    try {
        Integer.parseInt(text);
        isInt = true;
    } catch (NumberFormatException exp) {
        isDouble = true;
    }

    System.out.println("isInt = " + isInt);
    System.out.println("isDouble = " + isDouble);
} catch (NumberFormatException exp) {
    System.out.println(text + " is not a valid number");
}

A123出力A123 is not a valid number...

123出力...

isInt = true
isDouble = false

123.321出力...

isInt = false
isDouble = true
于 2013-09-23T01:05:52.850 に答える
1

整数または double 値の攪拌を解析するためにInteger.parseIntorを使用しようとする場合があります。Double.parseDouble

于 2013-09-23T01:01:06.690 に答える
0

あなたが使用できるユーザーからの入力を読んでいると仮定するとnextInt()

Scanner scan = new Scanner(System.in);
int n = 0;
try{
    n = scan.nextInt();
}
catch(NumberFormatException e){
    //do here what you want to do in case it's not an int
}

入力が int でない場合は、try/catch を使用することを忘れないでください (Juned の回答にも同じことが当てはまります!)。

于 2013-09-23T01:03:39.020 に答える