2
import java.util.Scanner;

public class Hello {

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int a;
        String s;

        System.out.println("Enter int : ");
        a = in.nextInt();
        System.out.println("Enter String : ");

        s = in.nextLine();
        System.out.println("int : "+a+"\nString : "+s);
    }
}

私はJavaの完全な初心者です。クラスを作成して、数字と文字列を1つずつ入力したいのですが、この行は無視されているHelloと思います。s = in.nextLine();2 つの値を 1 行ずつ入力するにはどうすればよいですか。

4

4 に答える 4

4

を使用するScanner.nextInt()と、改行 (または他の区切り文字) 自体は消費されないため、返される次のトークンは通常、空の文字列になります。したがって、その後に . を付ける必要がありますScanner.nextLine()。結果をに代入する代わりに破棄できますa:

int a = in.nextInt(); 
in.nextLine();

このため、常にnextLine(または) を使用BufferedReader.readLine()し、 を使用した後に解析を行うことをお勧めしInteger.parseInt()ます。

于 2012-07-13T06:25:25.437 に答える
1

それ以外の

s = in.nextLine();

試す

in.nextLine();
s = in.nextLine();

nextInt() への呼び出しは、まだ末尾の改行を残します。

in.nextLine() を呼び出すと、実際には次の行に移動します。次に、 in.nextLine が実際の結果を取得します。

于 2012-07-13T06:17:31.437 に答える
0
import java.util.Scanner;
public class Hello{
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        int a;
        String s;
        System.out.println("Enter int : ");
        a = in.nextInt();
        System.out.println("Enter String : ");
        s = in.next();
        System.out.println("int : "+a+"\nString : "+s);
    }
}
于 2012-07-13T06:40:36.957 に答える
0

このようにしてみてください:D

import java.util.Scanner;

public class Hello {
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int a;
        String s = null;
        System.out.print("Enter int: ");
        a = in.nextInt();

        while ((s = in.nextLine()).trim().isEmpty()) {
            System.out.print("Enter String: ");
        }

        System.out.println("int : " + a + "\nString : " + s);
    }
}
于 2012-07-13T06:30:12.987 に答える