Java 为什么我的错误会说String不能转换为String[]和int-to-int[]以及其他一些类型?
我的程序有一些错误,我似乎无法修复。当我运行我的程序时,准确地说有11个 我遇到的主要错误是在第8行,它说字符串不能转换为字符串[]。 这句话是这么说的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
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]
毫无意义,你想添加什么?在尝试下一步之前,集中精力解决问题的一部分,例如,试着从用户那里获取员工的姓氏。一旦你有了姓氏,你就知道如何获得工作时间,等等。。。