我有关于如何编写一个用整数填充数组的方法的问题。我做了这个方法,但我对如何打印感到困惑。我应该从每个方法中的for循环开始吗?我应该如何在一行上打印它们,每个数字之间有一个空格,如下所示:[1 2 3 4 5 6 7 ... 50]?
public class Numbers {
public int[] numbers;
public Numbers() {
numbers = new int[50];
}
public void numSequence() { // filling the array with sequence of integers.
for(int i = 0; i < 50; i++) {
numbers[i] = i;
}
}
public void printArray() { // printing the array
// do I need for loop here
for(int i = 0; i < 50; i++) {
System.out.print(i+1);
}
}
public static void main(String[] args){
Numbers d = new Numbers();
d.numSequence();
d.printArray();
}
}
答案 0 :(得分:1)
您的printArray
方法未打印阵列。它打印for循环的索引。首先,打印实际的数组值。
同样使用该打印件,您可以在每个字母后添加自己的空格。
E.g。
public void printArray() { // printing the array
System.out.print("["); // not in loop
for(int i = 0; i < numbers.length; i++) { // loop through numbers array
System.out.print(numbers[i]); // print the element in the array
if (i != numbers.length - 1) { // not the last element, so print a space
System.out.print(" ");
}
}
System.out.print("]"); // not in loop
}
但是你会遇到一个问题。因为在您创建numbers
数组时,您的开始时间为0
,而不是1
。现在,您可以像在问题中一样将1
添加到numbers
数组中来解决此问题。但这是不好的做法,因为你可能首先正确地创建了你的阵列。因此,将numSequence
方法更改为:
public void numSequence() { // filling the array with sequence of integers.
for(int i = 1; i <= 50; i++) { // starts at 1, and <= 50 so it adds 50 too
numbers[i] = i;
}
}
答案 1 :(得分:0)
没有必要创建一个类来做这种事情。 Java 8中的示例代码类似于:
Stream<Integer> stream = Stream.iterate(1, t-> t + 1);
System.out.println(Arrays.toString(stream.limit(50).toArray()));
如果你坚持使用printArray方法,请看一下Arrays#toString的实现。基本上你必须使用StringBuilder来连接数组项。
答案 2 :(得分:0)
我不会详细说明,我只是修改你的代码,
public class Numbers {
public int[] numbers;
public Numbers() {
numbers = new int[50];
}
public void numSequence() { // filling the array with sequence of integers.
for(int i = 0; i < 50; i++) {
//Add i+1 here o when we print we get 1 2 3 ....50
numbers[i] = i+1;
}
}
public void printArray() { // printing the array
// Use numbers.length instead of 50.
for(int i = 0; i < numbers.length; i++) {
//Print the values inside the array numbers
System.out.print(numbers[i]+" ");
}
}
public static void main(String[] args){
Numbers d = new Numbers();
d.numSequence();
d.printArray();
}
}
提示:您可以使用此方法代替您的方法使程序更具可伸缩性,并将其作为d.numSequence(100)访问,这将打印1 2 3 ... 100
public void numSequence(int theNumberLimit) {
for(int i = 0; i < theNumberLimit; i++) {
numbers[i] = i+1;
}
}
谢谢你希望这有帮助