java - 如何在单个数组中返回重复三次的数组?
问题描述
我很确定我已经正确完成了大部分代码,但是我返回了错误的东西?我试过使用 copyOf() 但仍然有同样的问题。看起来我正在返回数组的对象而不是元素?我需要方法 treble 来返回按顺序重复的原始数组,在一个数组中重复三次。所以 [1,2,3,] 在三倍时应该看起来像 [1,2,3,1,2,3,1,2,3]。任何帮助将非常感激。
import java.util.Scanner;
import java.util.Arrays;
public class ArrayExercises
{
public static void main(String[] args)
{
final int SIZE = 5;
int[] array = new int[SIZE];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < array.length; i++)
{
System.out.print("Please enter whole number " + (i + 1) + ": ");
int input = scanner.nextInt(); // get input from the user
array[i] = input; // store the value in the array
}
printArray("Input array:", array);
// call method sum and print out the result
int sum = sum(array);
System.out.println("The sum of elements is " + sum);
// call method repeat and print out the result
int[] trebled = repeat(array);
System.out.println("The repeated array is " + trebled);
}
public static void printArray(String msg, int[] array)
{
System.out.println(msg + " " + Arrays.toString(array));
}
public static int sum(int[] array)
{
int s = 0;
for (int i = 0; i < array.length; i++)
s += array[i];
return s;
}
public static int[] repeat(int[] array) //this is the part I'm having trouble with
{
int len = array.length;
int[] multiplied = new int[len*3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < len; j++)
{
multiplied[i * len + j] = array[j];
}
}
return multiplied;}
}
解决方案
尝试使用:
System.out.println("The repeated array is " + Arrays.toString(trebled));
打印数组而不是使用数组变量名打印,否则将打印数组的地址而不是内容。
推荐阅读
- apple-watch - 'NSHealthUpdateUsageDescription 必须在应用的 Info.plist 中设置
- python - 为什么在 python 中不可能有一个对象方法返回一个元组作为新对象 __init__ 方法中的参数?
- python - python - aggregate data in nested list structure
- ruby-on-rails - 为什么 rbenv 在 Mac OS Catalina 上不起作用
- c# - How to stop program crashing on 19th run?
- delphi - Firemonkey 风格的 TMemo 没有获得焦点
- python - Skeletonization with Thinning and Hit-or-miss implementation never stops
- node.js - npm 包无法安装“npm ERR!错误:EACCES:权限被拒绝”
- html - 如何修复 svg 路径中的线性渐变填充我无法使其过渡
- php - Amazon website shows "Deliver to Country". How can I change it programmatically?