为什么我的错误说String不能转换为String []和int转换为int []以及其他一些?

时间:2015-11-12 04:16:27

标签: java methods

我的程序有一些我似乎无法解决的错误。当我运行我的程序时,确切地说有11个。

我遇到的主要错误是在第8行,它表示String无法转换为String []。 这就是它所说的

  

String[] empLastName="";

我还在第9行挣扎,说int无法转换为int [] 这就是它所说的

  

int[] workStartTime=0, workEndTime=0, totalTimeWorked=0;

第47行的错误表示二进制运算符的错误操作数类型' +' 这一行是

  

totalTimeWorked=(totalTimeWorked+hoursWorked[i]);

该计划本身应该提醒10名员工

  

last name

     

what time they started their work

(时间必须按小时输入,然后以军事时间分钟输入。例如,如果他们在2:20开始工作,则用户应该输入14小时和20分钟)  `

  

what time they finished work

(也格式化为开始时间)。

我假设所有数据输入正确,员工在开始工作后完成工作,并且两次都在同一天。

该计划将确定每位员工当天工作的小时数。

它将输出格式良好的报告列表 `

  

all of the employees

     

along with the amount of time they worked

(列为小时和分钟),

也应该输出

  

the average amount of time worked

     

their last name

非常感谢任何帮助!

这是我写的 -

    import java.util.Scanner;

public class EmployeeTime 
{
    public static void main(String[] args)
    {

        String[] empLastName="";
        int[] workStartTime=0, workEndTime=0, totalTimeWorked=0;
        String[] empLastNameArray= new String[empLastNameArray.length];
        int[] workStartTimeArray= new int[workStartTimeArray.length];
        int[] workEndTimeArray= new int[workEndTimeArray.length];
        int[] avgHoursWorked= new int[avgHoursWorked.length];

        readEmployeeData(empLastName, workStartTime, workEndTime);
        determineHoursWorked(workStartTime, workEndTime, totalTimeWorked);
        determineAverageHoursWorked(workStartTime, workEndTime);
        writeHeadings();
        printEmployeeInformation(empLastName, workStartTime, workEndTime);
    }

    public static void readEmployeeData(String[] empLastName, int[] workStartTime, int[] workEndTime)
    {

        System.out.println("enter how many students you would like to get the information");


        Scanner input = new Scanner(System.in);
        for(int i=0; i<10; i++)
        {
            System.out.println("Please enter your last name.");
            empLastName[i]=input.next();
            System.out.println("Please enter your work start time.");
            workStartTime[i]=input.nextInt();
            System.out.println("Please enter your work end time.");
            workEndTime[i]=input.nextInt();
        }
    }

    public static double[] determineHoursWorked(int[] workStartTime, int[] workEndTime, int[] totalTimeWorked)
    {
        double[] hoursWorked= new double[hoursWorked.length];
        for(int i=0; i<hoursWorked.length; i++)
            hoursWorked[i]= workEndTime[i]-workStartTime[i];
        for(int i=0; i<hoursWorked.length; i++)
        {
            totalTimeWorked=(totalTimeWorked+hoursWorked[i]);
        }
        return hoursWorked;
    }

    public static double[] determineAverageHoursWorked(int[] workStartTime, int[] workEndTime)
    {
        double[] avgHoursWorked= new double[avgHoursWorked.length];
        for(int i=0; i<avgHoursWorked.length; i++)
            avgHoursWorked[i]= (totalTimeWorked/10);
        return avgHoursWorked;
    }

    public static void writeHeadings()
    {
        System.out.printf("%s%25s%13s%16s\n\n", "Employees", "Amount of time worked", "Average amount of time worked");
    }

    public static void printEmployeeInformation(String[] empLastName, int[] hoursWorked, int[] avgHoursWorked);
    {
        for(int i=0; i<empLastName.length; i++)
            System.out.printf("%-20s%9d%13.2f%16.2f\n", empLastName[i], hoursWorked[i], avgHoursWorked[i]);
    }
}

4 个答案:

答案 0 :(得分:0)

正如@Madprogramer所说你的问题是定义数组和设置值我建议看this link关于如何在java中声明和使用数组

答案 1 :(得分:0)

单个变量和数据类型数组之间存在差异。你必须像数组一样分配一个数组..例如..

分配空字符串数组

String arr[] = {};

定义整数

int arr[] = {};

答案 2 :(得分:0)

这是初始化String变量

的方法
String empLastName="";

这是初始化String数组变量的方法;

String[] empLastName= {""};

答案 3 :(得分:0)

您在此示例中尝试执行的操作是将数组X 转换为单数 X 。用鲍勃塔博尔的话来解释:

变量可以被认为是具有值的“桶”。当您说String s时,您定义了一个“桶”,它可以容纳一个字符串值。

但是,数组是一个完全不同的问题。 数组是一个“存储桶”,用于存放其他存储桶。它可以被视为一串多个字符串,例如: “A”,“B”,“C”,“D”...... 等等。定义数组时,需要为其提供许多元素;这是不可改变的。一个包含五个项目的数组将始终包含五个项目。标准数组声明如下:

String[] s = new String[5];
s[1] = "A";
s[2] = "B";

等等。但是,请注意使用String[] s = {}= {""}来定义数组的其他一些答案,因为这将为您提供一个只有一个的索引的数组,并且当您需要时持有多个项目,无论如何都需要重新创建它。

进一步阅读:Arrays Tutorial on Oracle