这是我目前的计划,用于获取输入并为用户提供超过两天的总薪水。我目前正在尝试将字符串与字符串数组(在.split(“,”)之后制作)分开,并将这些字符串放入其自己的数组中进行处理。我也使用整数执行相同的过程,但到目前为止,我无法使字符串分离正常工作。任何帮助将不胜感激。*注意,我是一个有点初学者,到目前为止只上了一节课,所以请保持简单。
import java.util.Scanner;
public class AmusementPark
{
public static void main(String[] args)
{
Scanner Reader=new Scanner(System.in);
int [] WorkScheduleInts;
String [] WorkScheduleStrings=new String[8];
System.out.println("Please enter the work schedule as follows:");
System.out.println("125, 2, 1, 7, 125, 3, 5, H");
System.out.println("Enter Your work schedule:");
String WorkScheduleinput=Reader.nextLine();
String [] WorkScheduleSplit=new String[8];
WorkScheduleSplit=WorkScheduleinput.split(", ");
for(int x=0; x<WorkScheduleSplit.length;x++)
{
if(WorkScheduleSplit[x]=="A" || WorkScheduleSplit[x]=="B" || WorkScheduleSplit[x]=="C" || WorkScheduleSplit[x]=="D" || WorkScheduleSplit[x]=="E" || WorkScheduleSplit[x]=="F" || WorkScheduleSplit[x]=="G" || WorkScheduleSplit[x]=="H")
{
WorkScheduleStrings[x]=WorkScheduleSplit[x];
}
System.out.println(WorkScheduleStrings[x]);
}
}
}
答案 0 :(得分:0)
使用以下方法比较if语句中的字符串
WorkScheduleSplit[x].equals("H")
而不是==
使用String.equals
阅读this link以了解String.equals
和==
操作之间的区别。
答案 1 :(得分:0)
编辑:看到以小写字母开头的变量的评论,并意识到我错过了。 Woops。
我看到的问题是你把H放到workScheduleStrings的最后一个地方。前7个工作日程序计划未能初始化,但最后一个位置最终会持有H.您需要的是另一个整数变量来计算已放入workScheduleStrings的项目数量。从0开始并更改
workScheduleStrings[x] = workScheduleSplit[x];
到
workScheduleStrings[count] = workScheduleSplit[x];
之后你应该将计数增加一。你也应该检查
的等价性workScheduleSplit[x].equals["H"];
你也有一些身体(支具)放置问题。我认为如果if语句的计算结果为true,那么if语句下的两个语句都应该执行。现在,如果将执行赋值,如果为true,但总是尝试输出。如果您尝试输出未初始化的内存,这可能是一个问题。如果你这样做它只输出一个H但我假设你打算稍后处理workSheduleSplit的整数部分。真的,我认为这应该先发生。无论如何, 循环现在看起来像:
int count = 0;
for(int x=0; x<workScheduleSplit.length;x++){
//I leave out the comparisons of A-G because I'm lazy. You have that part if you use the equals method though.
if( workScheduleSplit[x].equals("H"){
workScheduleStrings[count]=workScheduleSplit[x];
System.out.println(workScheduleStrings[count]);
count++;
}}