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

Java 为什么我的错误会说String不能转换为String[]和int-to-int[]以及其他一些类型?,java,methods,Java,Methods,我的程序有一些错误,我似乎无法修复。当我运行我的程序时,准确地说有11个 我遇到的主要错误是在第8行,它说字符串不能转换为字符串[]。 这句话是这么说的 String[]empLastName=”“ 我还在为第9行的一个说法而挣扎,该说法说int不能转换为int[] 这句话是这么说的 int[]workStartTime=0,workEndTime=0,totalTimeWorked=0 第47行的错误表示二进制运算符“+”的操作数类型错误 这条线是 totalTimeWorked=(total

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

我遇到的主要错误是在第8行,它说字符串不能转换为字符串[]。 这句话是这么说的

String[]empLastName=”“

我还在为第9行的一个说法而挣扎,该说法说int不能转换为int[] 这句话是这么说的


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

第47行的错误表示二进制运算符“+”的操作数类型错误 这条线是

totalTimeWorked=(totalTimeWorked+hoursWorked[i])

该计划本身应该会提示10名员工进行培训

姓氏

他们什么时候开始工作

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

他们什么时候完成工作

(格式也类似于开始时间)

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

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

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

所有员工

以及他们的工作时间

(列为小时和分钟)

它还应该输出

平均工作时间

他们的姓

非常感谢您的帮助

这是我写的-

    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]);
    }
}
import java.util.Scanner;
公共类雇员时间
{
公共静态void main(字符串[]args)
{
字符串[]empLastName=“”;
int[]workStartTime=0,workEndTime=0,totalTimeWorked=0;
String[]empLastNameArray=新字符串[empLastNameArray.length];
int[]workStartTimeArray=新int[workStartTimeArray.length];
int[]workEndTimeArray=new int[workEndTimeArray.length];
int[]avgHoursWorked=新int[avgHoursWorked.length];
readEmployeeData(员工姓名、工作开始时间、工作结束时间);
确定工作时间(工作开始时间、工作结束时间、总工作时间);
确定工作时间(工作开始时间、工作结束时间);
写标题();
打印员工信息(员工姓名、工作开始时间、工作结束时间);
}
公共静态void readEmployeeData(字符串[]EmploysName,int[]workStartTime,int[]workEndTime)
{
System.out.println(“输入您希望获得信息的学生人数”);
扫描仪输入=新扫描仪(System.in);

对于(int i=0;i,正如@Madprogramer所说,您的问题是定义数组和设置值。我建议您了解如何在java中声明和使用数组。

在单个变量和数据类型数组中存在差异。您必须像数组一样分配数组。.示例

分配空字符串数组的步骤

String arr[] = {};
定义整数

int arr[] = {};

这是初始化
字符串
变量的方法

String empLastName="";

这是初始化
字符串
数组变量的方法

String[] empLastName= {""};

在本例中,您试图将一个X数组转换为一个单数X。请套用Bob Tabor的话:

变量可以被认为是保存一个值的“bucket”。当你说
strings
时,你定义了一个可以保存一个字符串值的“bucket”

但是,数组是一个完全不同的问题。数组是一个“bucket”,包含其他bucket。它可以可视化为一行多个字符串,例如:
“A”、“B”、“C”、“D”…
等等。定义数组时,需要给它一个要容纳的元素数;这是不可更改的。一个包含五个项的数组将始终容纳五个项。标准数组声明如下所示:

String[] s = new String[5];
s[1] = "A";
s[2] = "B";
然而,对于其他一些答案,比如用
String[]s={}
={”“}
定义一个数组,要小心,因为这会给你一个只有一个索引的数组,当你想保存多个项目时,你仍然需要重新创建它


进一步阅读:

不是数组,因此
字符串[]empLastName=“”;
毫无意义,它应该是
字符串empLastName=“”;
字符串[]empLastName={”“};
取决于您试图实现的
int[]workStartTime=0,workEndTime=0,totalTimeWorked=0;
…请参阅前面的注释
totalTimeWorked
是一个数组;
int[]totalTimeWorked
,因此
totalTimeWorked+hoursWorked[i]
毫无意义,你想添加什么?在尝试下一步之前,集中精力解决问题的一部分,例如,试着从用户那里获取员工的姓氏。一旦你有了姓氏,你就知道如何获得工作时间,等等。。。