我的java代码中的未知语法

时间:2018-05-09 18:31:51

标签: java

我在while循环结束前收到index.hasNextinput.nextInt();的语法错误。 “input.nextInt();” for“weights [index] = input.nextInt();”适用但不适用于“类型[索引]”。

 import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.Scanner;
 public class Horse {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner input =null;
    int[] weights = new int[100];
    String[] types = new String[100];

    try {
        input = new Scanner(new File("horseData.csv"));
    } catch (FileNotFoundException e) {
        System.out.println(" Error FIle Not FOund");
        e.printStackTrace();
        System.exit(1);
    }//end catch

    int index = 0;
    while (index.hasNext())     {
        weights[index] = input.nextInt();
        types[index] = input.nextInt();
        System.out.println(" Weight: "+ weights[index] + ", types:" + types[index]);
    }//end while

    input.close();

    for(int i = 0; i < types.length;i++)
        System.out.println((i+1) + "\t" + amountOfFeed(types[i], weights[i]));

}//end main

public static double amountOfFeed(String horseType, int horseWeight)    {
    if(horseType.equals(" maintance") || horseType.equals(" light work") )
        return horseWeight * .02;
    else if (horseType.equals(" Moderate work"))    
        return horseWeight * .025;

    return horseWeight * .03;

}


}

谢谢:)

3 个答案:

答案 0 :(得分:2)

更改以下内容

while (index.hasNext()) 

while (input.hasNext()) 

您可能还需要使用index

增加while循环内的index++

答案 1 :(得分:2)

简单:

int index = 0;
while (index.hasNext())     {

您将index声明为基本类型int。原始类型不是对象,你可以调用它们的方法!

所以,你可能意味着:

while (input.hasNext()) ...

事情是:细节很重要。因此,例如,避免使用&#34; close&#34;相互之间(以便在实际意味着index时)意外使用input

答案 2 :(得分:0)

在我们使用方法()

调用它们之前,需要将原始数据类型转换为对象