私はこれに対する答えを探していましたが、これを修正した人をまだ見つけることができませんでした. 配列にデータを入力しようとしていますが、特定の値よりも大きくなるかどうかを確認してください。ただし、これを実行すると、スレッド "main" java.lang.NumberFormatException: For input string: "" Error で例外が発生します。そのコードは次のとおりです。
public void setReadData() throws NoSuchElementException {
try {
for (int i = 0; i < getRows(); i++) {
String numbers = p.nextLine();
String[] inputs = numbers.split(" ");
if (inputs.length > getCols()) {
System.out.println("There are more columns than the size specified!\n");
System.exit(1);
}
for (int j = 0; j < getCols(); j++) {
int data = Integer.parseInt(inputs[j]);
this.setData(i,j,data);
}
}
エラーコードは次のとおりです。
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
at foo.Bar.setReadData(Matrix.java:49)
at foo.Bar.main(Matrix.java:226)
どんな助けでも大歓迎です!
- - 編集 - -
明確にするために、機能していた古いコードは次のとおりです。
for (int i = 0; i < getRows(); i++) {
p.nextLine();
for (int j = 0; j < getCols(); j++) {
this.setData(i,j,p.nextInt());
}
}
ただし、行全体がチェックされているというチェックはありません。