Java 如何添加两个长度不同的int数组?
我一直在一个Java实验室工作,它希望我们让用户输入两个长达50位的数字,然后将它们相加。除了两个阵列的长度不同之外,我已经成功地完成了所有任务。我一直在玩弄这个代码有一段时间了,但我一直没有找到答案。任何人都可以看看这方面的代码,并有任何建议吗?谢谢Java 如何添加两个长度不同的int数组?,java,arrays,if-statement,for-loop,int,Java,Arrays,If Statement,For Loop,Int,我一直在一个Java实验室工作,它希望我们让用户输入两个长达50位的数字,然后将它们相加。除了两个阵列的长度不同之外,我已经成功地完成了所有任务。我一直在玩弄这个代码有一段时间了,但我一直没有找到答案。任何人都可以看看这方面的代码,并有任何建议吗?谢谢 int[] number1 = new int[input1.length()]; int[] number2 = new int[input2.length()]; int[] answer = new int[input1.length()]
int[] number1 = new int[input1.length()];
int[] number2 = new int[input2.length()];
int[] answer = new int[input1.length()];
if(number1.length > number2.length){
number2 = new int[number1.length];
for(int i = 0; i < number2.length - number1.length; i++){
number2[i] = 0;
}
}
if(number2.length > number1.length){
number1 = new int[number2.length];
for(int i = 0; i < number1.length - number2.length; i++){
number1[i] = 0;
}
}
int[]number1=newint[input1.length()];
int[]number2=新的int[input2.length()];
int[]answer=new int[input1.length()];
如果(number1.length>number2.length){
number2=新整数[number1.长度];
for(int i=0;inumber1.length){
number1=新整数[number2.length];
for(int i=0;i
每当我添加(比如120和12)时,它都表示存在数组越界错误。我对代码的理解是,您尝试将0预先附加(从头部推送)到较短的数组。看看第一个if块。1号的长度大于2号的长度。因此,number2.length-number1.length是负数。然后,在for循环中,i
if(number1.length > number2.length) {
int[] number3 = new int[number1.length];
for(int i = 0; i < number1.length - number2.length; ++i) {
number3[i] = 0;
}
for(int i = 0; i < number2.length; ++i) {
number3[i + number1.length - number2.length] = number2[i];
}
number2 = number3;
}
if(number1.length>number2.length){
int[]number3=新的int[number1.length];
对于(int i=0;i
顺便说一句,第二个if块应该以类似的方式更改。也许,java为数组对象提供了API链接插入(0,0)。这将更容易实现。我对代码的理解是,您尝试将0预先附加(从头部推送)到较短的数组中。看看第一个if块。1号的长度大于2号的长度。因此,number2.length-number1.length是负数。然后,在for循环中,i
if(number1.length > number2.length) {
int[] number3 = new int[number1.length];
for(int i = 0; i < number1.length - number2.length; ++i) {
number3[i] = 0;
}
for(int i = 0; i < number2.length; ++i) {
number3[i + number1.length - number2.length] = number2[i];
}
number2 = number3;
}
if(number1.length>number2.length){
int[]number3=新的int[number1.length];
对于(int i=0;i
顺便说一句,第二个if块应该以类似的方式更改。也许,java为数组对象提供了API链接插入(0,0)。这将更容易实现。我对代码的理解是,您尝试将0预先附加(从头部推送)到较短的数组中。看看第一个if块。1号的长度大于2号的长度。因此,number2.length-number1.length是负数。然后,在for循环中,i
if(number1.length > number2.length) {
int[] number3 = new int[number1.length];
for(int i = 0; i < number1.length - number2.length; ++i) {
number3[i] = 0;
}
for(int i = 0; i < number2.length; ++i) {
number3[i + number1.length - number2.length] = number2[i];
}
number2 = number3;
}
if(number1.length>number2.length){
int[]number3=新的int[number1.length];
对于(int i=0;i
顺便说一句,第二个if块应该以类似的方式更改。也许,java为数组对象提供了API链接插入(0,0)。这将更容易实现。我对代码的理解是,您尝试将0预先附加(从头部推送)到较短的数组中。看看第一个if块。1号的长度大于2号的长度。因此,number2.length-number1.length是负数。然后,在for循环中,i
if(number1.length > number2.length) {
int[] number3 = new int[number1.length];
for(int i = 0; i < number1.length - number2.length; ++i) {
number3[i] = 0;
}
for(int i = 0; i < number2.length; ++i) {
number3[i + number1.length - number2.length] = number2[i];
}
number2 = number3;
}
if(number1.length>number2.length){
int[]number3=新的int[number1.length];
对于(int i=0;i
顺便说一句,第二个if块应该以类似的方式更改。也许,java为数组对象提供了API链接插入(0,0)。这将更容易实现。您需要做的第一件事是将数字放入int数组中。通过将字符串拆分为字符数组来实现这一点。然后转换为int数组。然后加上
String input1 = scanner.nextLine().trim(); <-- get input as String
String input2 = scanner.nextLine().trim();
char[] array1 = input1.toCharArray(); <-- split to char array
char[] array2 = input2.toCharArray();
// convert to int array
int[] intArray1 = new int[array1.length]; <-- declare int array
int[] intArray2 = new int[array2.length];
for (int i = 0; i < array1.length; i++){
intArray1[i] = Integer.parseInt(String.valueOf(array1[i])); <-- convert to int
}
for (int i = 0; i < array2.legnth; i++){
intArray2[i] = Integer.parseInt(String.valueOf(array2[i]));
}
// check which one is larger and add to that one
if (intArray1.length > intArray2.length){
for (int i = 0; i < intArray2.length; i++){
intArray1[i] += intArray2[i]; <-- add values
}
System.out.println(Arrays.toString(intArray1); <-- print largest
} else {
for (int i = 0; i < intArray1.length; i++){
intArray2[i] += intArray1[i];
}
System.out.println(Arrays.toString(intArray2);
}
所以123和12将打印出233,您需要做的第一件事是将数字放入整数数组。通过将字符串拆分为字符数组来实现这一点。然后转换为int数组。然后加上
String input1 = scanner.nextLine().trim(); <-- get input as String
String input2 = scanner.nextLine().trim();
char[] array1 = input1.toCharArray(); <-- split to char array
char[] array2 = input2.toCharArray();
// convert to int array
int[] intArray1 = new int[array1.length]; <-- declare int array
int[] intArray2 = new int[array2.length];
for (int i = 0; i < array1.length; i++){
intArray1[i] = Integer.parseInt(String.valueOf(array1[i])); <-- convert to int
}
for (int i = 0; i < array2.legnth; i++){
intArray2[i] = Integer.parseInt(String.valueOf(array2[i]));
}
// check which one is larger and add to that one
if (intArray1.length > intArray2.length){
for (int i = 0; i < intArray2.length; i++){
intArray1[i] += intArray2[i]; <-- add values
}
System.out.println(Arrays.toString(intArray1); <-- print largest
} else {
for (int i = 0; i < intArray1.length; i++){
intArray2[i] += intArray1[i];
}
System.out.println(Arrays.toString(intArray2);
}
所以123和12将打印出233,您需要做的第一件事是将数字放入整数数组。通过将字符串拆分为字符数组来实现这一点。然后转换为int数组。然后加上
String input1 = scanner.nextLine().trim(); <-- get input as String
String input2 = scanner.nextLine().trim();
char[] array1 = input1.toCharArray(); <-- split to char array
char[] array2 = input2.toCharArray();
// convert to int array
int[] intArray1 = new int[array1.length]; <-- declare int array
int[] intArray2 = new int[array2.length];
for (int i = 0; i < array1.length; i++){
intArray1[i] = Integer.parseInt(String.valueOf(array1[i])); <-- convert to int
}
for (int i = 0; i < array2.legnth; i++){
intArray2[i] = Integer.parseInt(String.valueOf(array2[i]));
}
// check which one is larger and add to that one
if (intArray1.length > intArray2.length){
for (int i = 0; i < intArray2.length; i++){
intArray1[i] += intArray2[i]; <-- add values
}
System.out.println(Arrays.toString(intArray1); <-- print largest
} else {
for (int i = 0; i < intArray1.length; i++){
intArray2[i] += intArray1[i];
}
System.out.println(Arrays.toString(intArray2);
}
所以123和12将打印出233,您需要做的第一件事是将数字放入整数数组。通过将字符串拆分为字符数组来实现这一点。然后转换为int数组。然后加上
String input1 = scanner.nextLine().trim(); <-- get input as String
String input2 = scanner.nextLine().trim();
char[] array1 = input1.toCharArray(); <-- split to char array
char[] array2 = input2.toCharArray();
// convert to int array
int[] intArray1 = new int[array1.length]; <-- declare int array
int[] intArray2 = new int[array2.length];
for (int i = 0; i < array1.length; i++){
intArray1[i] = Integer.parseInt(String.valueOf(array1[i])); <-- convert to int
}
for (int i = 0; i < array2.legnth; i++){
intArray2[i] = Integer.parseInt(String.valueOf(array2[i]));
}
// check which one is larger and add to that one
if (intArray1.length > intArray2.length){
for (int i = 0; i < intArray2.length; i++){
intArray1[i] += intArray2[i]; <-- add values
}
System.out.println(Arrays.toString(intArray1); <-- print largest
} else {
for (int i = 0; i < intArray1.length; i++){
intArray2[i] += intArray1[i];
}
System.out.println(Arrays.toString(intArray2);
}
所以123和12将打印出233Java将用所有值等于零的值初始化int数组。所以你实际上什么都不做,你的for循环。我不确定你想用你的代码实现什么,但我建议你重新评估这个问题,然后再尝试一次