试图用字符串和整数从数组中分离字符串(包括当前程序)
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++;
}}
这是我目前的程序,用于接受输入并在两天内为用户提供总报酬。我目前正在尝试将字符串与字符串数组(在 .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++;
}}