Java: 如何制作名称字段

Java: how to make field of names

首先对不起我的英语。 我想问你如何制作我可以从用户 put/save 命名的名称字段。 这是我的尝试,但每次我 运行 它和用户写他的名字时,字段中的名字都被用户名替换。希望你能理解我。

    Scanner sc = new Scanner(System.in);
    String[] name = {"John","Nico","Sarah","Pablo","Micheal"};
    for (int i = 0; i < 1; i++)
    {
        System.out.println("Write your name: ");
        String s = sc.nextLine();
        name[i] = s;
    }
    Arrays.sort(name);
    for (String s2 : name)
    {
        System.out.print(s2 + ", ");

    }
  }
} 
Scanner scanner = new Scanner(System.in);
String[] names = {"John", "Nico", "Sarah", "Pablo", "Micheal", ""};
System.out.print("Write your name: ");
String userName = scanner.nextLine();
names[names.length - 1] = userName;
System.out.println(Arrays
        .stream(names)
        .sorted()
        .collect(Collectors.joining(",")));

这应该return你想要的。

数组总是有固定的大小。通过键入:

String[] names = {"John", "Nico", "Sarah", "Pablo", "Micheal"};

您将数组的大小定义为 5。通过添加额外的 "",您可以 "reserve" 放置用户名。

使用:

names[names.length - 1] = userName;

您用用户输入替换“”,而不是像在您的解决方案中那样替换名字。

希望这对您有所帮助。编码愉快!

您似乎在用一些值初始化数组名称[],然后用用户输入覆盖这些值。如果你只想初始化数组,那么你可以使用数组初始化语法。

String[] name = new String[5];

同样在 for 循环中,条件 i < 1 是错误的。应该是 i < name.length.

public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        //String[] name = { "John", "Nico", "Sarah", "Pablo", "Micheal" };
        String[] name = new String[5];

        //for (int i = 0; i < 1; i++) {
        for (int i = 0; i < name.length; i++) {
            System.out.println("Write your name: ");
            String s = sc.nextLine();
            name[i] = s;
        }
        Arrays.sort(name);
        for (String s2 : name) {
            System.out.print(s2 + ", ");

        }
    }