我试图用文件中的数字填充数组,但我似乎无法弄清楚如何删除大于目标的数字" D"。
以下是我遇到问题的代码
public static void populateMatrix(int[] s){
File input = new File("set2.txt");
int value;
try{
Scanner inf = new Scanner(input);
for(int i = 0; i < s.length ; i++){
value = inf.nextInt();
if(value > D){
//Don't know what to add here.
}//if
else{
s[i] = value;
}//else
}//for
}//try
catch(IOException e){
e.printStackTrace();
}
}//PopulateMatrix
答案 0 :(得分:2)
可以说,你可以继续使用while循环拉一个int,然后在符合条件时分配它。
for(int i = 0; i < s.length ; i++){
value = inf.nextInt();
while(value > D){
value = inf.nextInt();
}
s[i] = value;
}
显然,如果你没有注意到下一个,这会抛出一个错误,但之前没有任何检查,所以无论如何你仍然需要进行错误检查。
答案 1 :(得分:1)
假设您不想在阵列中留出空白空间,我会这样做:
public static void populateMatrix(int[] s){
File input = new File("set2.txt");
int value;
try{
Scanner inf = new Scanner(input);
for(int i = 0; i < s.length ;){
value = inf.nextInt();
if(value <= D){
s[i] = value;
i++;
}
}//for
}//try
catch(IOException e){
e.printStackTrace();
}
}//PopulateMatrix
答案 2 :(得分:1)
如果value >D
或
for(int i = 0; i < s.length i++;){
value = inf.nextInt();
if(value <= D){
s[i] = value;
}