2017-09-01 5 views
-1

Zuerst Entschuldigung für mein Englisch. Ich möchte Sie fragen, wie kann ich Feld von Namen machen, in denen ich Name vom Benutzer setzen/speichern kann. Das war mein Versuch, aber jedes Mal, wenn ich es ausführte und der Benutzer seinen Namen schrieb, wurde der Vorname im Feld durch den Benutzernamen ersetzt. Ich hoffe du verstehst mich.Java: wie man Feldnamen macht

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 + ", "); 

    } 
    } 
} 
+0

Sie möchten also Namen zu Ihrem Feld hinzufügen, ohne die Namen zu ersetzen, die Sie bereits gespeichert haben? – gonzo

+0

'für (int i = 0; i <1; i ++)' ist sinnlos. Es "schleift" nur einmal. – shmosel

+0

Sie aktualisieren das Array 'name' am Index 0, indem Sie' name [i] = s; 'eingeben, wobei' i' 0 ist. –

Antwort

0
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(","))); 

Dies sollte zurückgeben, was Sie wollen.

Ein Array hat immer eine feste Größe. Durch die Eingabe von:

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

definieren Sie die Größe des Array 5. werden durch die zusätzliche Zugabe von „“ Sie können „Reserve“ ein Platz für den Namen des Benutzers.

Verwendung:

names[names.length - 1] = userName; 

Sie ersetzen „“ durch den Benutzer eingegeben wird, anstatt die Vornamen ersetzt, wie in Ihrer Lösung.

Hoffe, das hilft. Glückliche Kodierung!

0

Offenbar initialisieren Sie den Array-Namen [] mit einigen Werten und überschreiben dann die Werte mit den Benutzereingaben. Wenn Sie das Array nur initialisieren möchten, können Sie die Array-Initialisierungssyntax verwenden.

String[] name = new String[5]; 

Auch in der for-Schleife der Zustand i < 1 ist falsch. Es sollte i < name.length sein.

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 + ", "); 

     } 
    }