package D3;
import java.util.Scanner;
public class Test10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("length");
int lenGth = scanner.nextInt();//数组长度
String[] ints = new String[lenGth];//存储姓名
for (int i = 0; i < ints.length; i++) {
System.out.println("name");
String name = scanner.next();
for (int j = i; j < ints.length; j++) {
if (name == ints[j]) {
System.out.println("%%%" + j);
}
}
ints[i] = name;
for (int j = 0; j < ints.length; j++) {
System.out.println(ints[j]);
}
}
}
}
我这边跑for j一直输出呀
你这逻辑似乎有点问题,你每次都是从i之后检测的,也就是说后面输入的部分不会和前面的部分比较,所以一直不会有相等的情况出现,也就是说for i理论上不会有输出
package com.csdn;
import java.util.Objects;
import java.util.Scanner;
public class q7504016 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("length");
boolean flag;
int lenGth = scanner.nextInt();//数组长度
String[] ints = new String[lenGth];//存储姓名
System.out.println(ints.length);
for (int i = 0; i < ints.length; ) {
System.out.println("name");
String name = scanner.next();
flag = true;
for (int j = 0; j < i; j++) {
if (Objects.equals(name, ints[j])) {
System.out.println("%%%" + j);
flag = false;
}
}
if (flag) {
ints[i] = name;
for (String anInt : ints) {
System.out.println(anInt);
}
i++;
}
}
}
}
稍微魔改了一下,现在大概和你说的功能差不多
有疑问可以再交流,有帮助,望采纳
第二个for里面 ints[j] 应该是 恒为null的,因为是比较了后才赋值的