0

スペースを区切り文字として使用して「sisestus」を別の単語に分割しようとしていますが、sc.next()を使用するだけではスペースを含む文字列を入力できないため、.nextLine()を使用する必要があると読みました。しかし、それはまったく機能しません。どうすれば解決できますか?

public class Sisestamine {
int read;
int veerud;
double Maatriks[][];
java.util.Scanner sc = new java.util.Scanner(System.in);

Sisestamine() {
    System.out.println("Enter matrix dimensions (format NxM)");

    String[] abi = sc.next().split("x");
    this.read = Integer.parseInt(abi[0]);
    this.veerud = Integer.parseInt(abi[1]);
    this.Maatriks = new double[read][veerud];

    System.out.println("Enter the matrix: (x x x x etc..)");
    for (int i = 0; i < read; i++) {
        String sisestus = sc.next();
                  //String sisestus = sc.nextLine(); 
        abi = sisestus.split(" "); 
        System.out.print(abi);
        for (int j = 0; j < abi.length; j++) {
            this.Maatriks[i][j] = Double.parseDouble(abi[j]);
        }
     }
   }
 }
4

1 に答える 1

1

問題はsc.next()、プログラムの一部で使用していて、sc.nextLine()後で使用していることが原因である可能性があります。2番目の呼び出しでは、の前の呼び出しでハングしたままになっている行末(EOL)トークンが飲み込まれnext()ます。sc.nextLine()解決策は、すべての呼び出しに使用することです。つまり、すべて sc.next()をに変更しsc.nextLine()ます。

于 2013-03-10T21:47:24.007 に答える