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

时间:2015-01-13 05:17:12

标签: java arrays eclipse string

这是我目前的计划,用于获取输入并为用户提供超过两天的总薪水。我目前正在尝试将字符串与字符串数组(在.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]);
        }
    }
}

2 个答案:

答案 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++;
}}