0

私はこれをやろうとしていました:

import java.util.Scanner;
public class Prov{
    public static void main(){
        Scanner getInfo = new Scanner(System.in);
        showInfo(getInfo.next());

    }
    public void showInfo(int numb){
        System.out.println("You typed this integer: " + numb);
    }
        public void showInfo(double numb){
        System.out.println("You typed this double: " + numb);
    }
}

しかし、scanner.nextまたはscanner.nextIntを探しても機能しません。intを入力すると、doubleとintを書き込むとdoubleが取得されません。

ありがとう !

4

2 に答える 2

3

使用できます

if (scanner.hasNextInt()) {
    int i = scanner.nextInt();

} else if(scanner.hasNextDouble()) {
    double d = scanner.nextDouble();

} else {
     scanner.next(); // discard the word

他のすべてのオプションについては、Javadoc を読むことをお勧めします。

于 2013-10-19T20:13:36.030 に答える
1

next() メソッドは数値ではなく、具体的には int でも double でもない String を返します。これを修正するには、next が int か double かをテストする必要があります。すなわち:

if (getInfo.hasNextInt()) {
    showInfo(getInfo.nextInt());
}else if(getInfo.hasNextDouble()) {
    showInfo(getInfo.nextDouble());
}else{
    //Neither int or double
}

お役に立てれば!

于 2013-10-19T20:16:33.903 に答える