试图删除大于我的目标号码的数字

时间:2014-10-02 17:08:14

标签: java

我试图用文件中的数字填充数组,但我似乎无法弄清楚如何删除大于目标的数字" 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 

3 个答案:

答案 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;
    }