我正在学习Java数组,并陷入了这个问题。 我想添加num的值,如果名称相等则删除重复的名称。 在此先感谢您。 这是我的一些代码:
public static void main(String[]Args){
Scanner input = new Scanner(System.in);
int n;
System.out.println("Input n= ");
n=input.nextInt();
String name[] = new String[n];
int num[] = new int[n];
for (int i = 0; i<n; i++){
System.out.println("Input name= ");
name[i]= input.next();
System.out.println("Input num= ");
num[i]=input.nextInt();
}
for(int i=0;i<n;i++){
System.out.println(name[i] + " " + num[i]);
}
Example1 5
Example2 6
name [0] =“ Example1”
name [1] =“ Example2”
name [2] =“ Example1”
num [0] = 2
num [1] = 6
num [2] = 3
Example1 2
Example2 6
Example1 3
答案 0 :(得分:1)
请记住,数组从0开始。此解决方案不会清除数组,因此您需要修改其中的一些以将两个数组都向左移动。
int n = 3;
String[] name = new String[n];
int[] num= new int[n];
name[0] = "Example1";
name[1] = "Example2";
name[2] = "Example1";
num[0] = 2;
num[1] = 6;
num[2] = 3;
for (int i = 0; i < name.length; i++) {
for (int j = i+1; j < name.length; j++) {
if (name[i].equals(name[j])) {
num[i] += num[j];
num[j] = 0;
name[j] = null;
}
}
}
for(int i=0;i<n;i++){
if (name[i] != null) {
System.out.println(name[i] + " " + num[i]);
}
}
输出:
Example1 5
Example2 6
答案 1 :(得分:0)
以下程序完成了您所追求的目标:
class Main {
public static void main(String[] args) {
int n = 2;
String[] name = {"Example1", "Example2"};
int[] num = {5, 6};
//this is a comment
for (int i = 0; i < n; i++){
System.out.println(name[i] + " " + num[i]);
}
}
}
您需要为num
,name
声明一个数组,并且还需要将n
的值更改为2,以便保留循环格式并仅打印两个元素。