Java 数组 - 将字符串放在哪里?为什么它不起作用?
Java Arrays - Where too put Strings? Why doesn't it work?
我的程序应该是这样的:
How many random numbers between 0 - 999 do you want? 12 (user
input)
Here are the random numbers: 145 538 56 241 954 194 681 42 876 323 2
87
These 7 numbers are even: 538 56 954 194 42 876 2
These 5 numbers are odd: 145 241 681 323 87
我似乎无法将 String
s("These 7 numbers are even"
和 "These 5 numbers are odd"
放在代码的正确位置。我如何打印确切的数字(7
和 5
) 显示在 String
中的偶数和奇数?代码似乎对我来说无论哪种方式都不起作用。你看到问题了吗?我希望你能帮我解决这个问题,我已经连续做了 12 个小时了。
这是我的代码:
import java.util.Scanner;
public class SlumpadeTal {
public static void main(String[] args) {
int evenCounter = 0;
int oddCounter = 0;
Scanner input = new Scanner(System.in);
System.out.println("How many random numbers between 0 - 999 do you want?");
int antal = input.nextInt();
System.out.println("Here are the random numbers:");
int[] arrayen = new int[antal];
for (int i = 0; i < arrayen.length; i++) {
arrayen[i] = (int) (Math.random() * 999 + 1);
System.out.print(arrayen[i] + " ");
if ((arrayen[i] % 2) == 0) {
evenCounter++;
}
else {
oddCounter++;
}
}
int[] evenArray = new int [evenCounter];
int[] oddArray = new int[oddCounter];
evenCounter = 0;
oddCounter = 0;
for (int i = 0; i < arrayen.length; i++){
if ((arrayen[i] % 2) == 0) {
evenArray[evenCounter] = arrayen[i];
evenCounter++;
}
else {
oddArray[oddCounter] = arrayen[i];
oddCounter++;
}
}
}
}
注意我不能使用任何 class,例如 ArrayList
、Vector
等等。
当 evenArray 和 oddArray 在最后一个 for 循环完成后有值时。您只需使用 2 个另一个循环来打印这 2 个数组。
7 是 evenCounter + 1
5 是 oddCounter + 1
例如:
String s = "These " + (evenCounter + 1) + "numbers are even: " ....打印你的数组。
只为你的输出:
System.out.print("These "+evenCounter+" numbers are even: ");
for (int i = 0; i < evenCounter; i++){
System.out.print(evenArray[i]+" ");
}
System.out.println();
System.out.print("These "+oddCounter+" numbers are odd: ");
for (int i = 0; i < oddCounter; i++){
System.out.print(oddArray[i]+" ");
}
System.out.println();
可以,还有其他解决方案。例如:
String evStr=new String();
String odStr=new String();
int curNum=0;
for (int i = 0; i < antal; i++) {
curNum = (int) (Math.random() * 999 + 1);
System.out.print(curNum + " ");
if ((curNum % 2) == 0) {
evStr+=" "+curNum;
evenCounter++;
}
else {
odStr+=" "+curNum;
oddCounter++;
}
}
System.out.println();
System.out.println("These "+evenCounter+" numbers are even: "+evStr);
System.out.println("These "+oddCounter+" numbers are odd: "+odStr);
因此带有 even/odd 数组的代码的整个第二部分都消失了。而且再也没有数组了。
我的程序应该是这样的:
How many random numbers between 0 - 999 do you want? 12 (user input)
Here are the random numbers: 145 538 56 241 954 194 681 42 876 323 2 87
These 7 numbers are even: 538 56 954 194 42 876 2
These 5 numbers are odd: 145 241 681 323 87
我似乎无法将 String
s("These 7 numbers are even"
和 "These 5 numbers are odd"
放在代码的正确位置。我如何打印确切的数字(7
和 5
) 显示在 String
中的偶数和奇数?代码似乎对我来说无论哪种方式都不起作用。你看到问题了吗?我希望你能帮我解决这个问题,我已经连续做了 12 个小时了。
这是我的代码:
import java.util.Scanner;
public class SlumpadeTal {
public static void main(String[] args) {
int evenCounter = 0;
int oddCounter = 0;
Scanner input = new Scanner(System.in);
System.out.println("How many random numbers between 0 - 999 do you want?");
int antal = input.nextInt();
System.out.println("Here are the random numbers:");
int[] arrayen = new int[antal];
for (int i = 0; i < arrayen.length; i++) {
arrayen[i] = (int) (Math.random() * 999 + 1);
System.out.print(arrayen[i] + " ");
if ((arrayen[i] % 2) == 0) {
evenCounter++;
}
else {
oddCounter++;
}
}
int[] evenArray = new int [evenCounter];
int[] oddArray = new int[oddCounter];
evenCounter = 0;
oddCounter = 0;
for (int i = 0; i < arrayen.length; i++){
if ((arrayen[i] % 2) == 0) {
evenArray[evenCounter] = arrayen[i];
evenCounter++;
}
else {
oddArray[oddCounter] = arrayen[i];
oddCounter++;
}
}
}
}
注意我不能使用任何 class,例如 ArrayList
、Vector
等等。
当 evenArray 和 oddArray 在最后一个 for 循环完成后有值时。您只需使用 2 个另一个循环来打印这 2 个数组。
7 是 evenCounter + 1
5 是 oddCounter + 1
例如: String s = "These " + (evenCounter + 1) + "numbers are even: " ....打印你的数组。
只为你的输出:
System.out.print("These "+evenCounter+" numbers are even: ");
for (int i = 0; i < evenCounter; i++){
System.out.print(evenArray[i]+" ");
}
System.out.println();
System.out.print("These "+oddCounter+" numbers are odd: ");
for (int i = 0; i < oddCounter; i++){
System.out.print(oddArray[i]+" ");
}
System.out.println();
可以,还有其他解决方案。例如:
String evStr=new String();
String odStr=new String();
int curNum=0;
for (int i = 0; i < antal; i++) {
curNum = (int) (Math.random() * 999 + 1);
System.out.print(curNum + " ");
if ((curNum % 2) == 0) {
evStr+=" "+curNum;
evenCounter++;
}
else {
odStr+=" "+curNum;
oddCounter++;
}
}
System.out.println();
System.out.println("These "+evenCounter+" numbers are even: "+evStr);
System.out.println("These "+oddCounter+" numbers are odd: "+odStr);
因此带有 even/odd 数组的代码的整个第二部分都消失了。而且再也没有数组了。