试图用字符串和整数从数组中分离字符串(包括当前程序)

trying to separate strings from an array with strings and ints (current program included)

这是我目前的程序,用于接受输入并在两天内为用户提供总报酬。我目前正在尝试将字符串与字符串数组(在 .split(", ") 之后制作)分开,并将这些字符串放入其自己的数组中进行处理。我也在用整数做同样的过程,但到目前为止我无法让字符串分隔正常工作。任何帮助将不胜感激。*请注意,我是这方面的初学者,到目前为止只用了一个 class 所以请保持简单。

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]);
        }
    }
}

在 if 语句中使用以下方式比较字符串,

WorkScheduleSplit[x].equals("H")

而不是 == 使用 String.equals

阅读 this link 以了解 String.equals== 操作之间的区别。

编辑:看到关于以小写字母开头的变量的评论,意识到我错过了。糟糕。

我看到的问题是你把 H 放到了 workScheduleStrings 的最后一个地方。 workScheduleStrings 的前 7 个位置不会被初始化,但最后一个位置最终会保存一个 H。您需要的是另一个整数变量来计算有多少项已放入 workScheduleStrings。从 0 开始并更改

workScheduleStrings[x] = workScheduleSplit[x];

workScheduleStrings[count] = workScheduleSplit[x];

之后你应该将计数加一。您还应该检查

是否等效
workScheduleSplit[x].equals["H"];

您似乎还有一些 body(大括号)放置问题。我认为如果 if 语句的计算结果为真,则 if 语句下的两个语句都应该执行。现在 if 将执行分配,如果为真,但将始终尝试输出。如果您尝试输出未初始化的内存,这可能是个问题。如果你这样做,它只会输出一个 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++;
}}