2017-09-01 75 views
-1

首先對不起我的英文。 我想問你,我怎樣才能使域名可以放入/保存用戶的名字。 這是我的嘗試,但每次我跑它和用戶寫他的名字字段中的第一個名稱被替換爲用戶名。我希望你能理解我。Java:如何製作域名

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

所以,你要的名字,而無需更換你已經保存的名字添加到您的領域? – gonzo

+0

'for(int i = 0; i <1; i ++)'是毫無意義的。它只「循環」一次。 – shmosel

+0

您正在通過執行'name [i] = s;'來更新位於索引0處的'name'數組,其中'i'爲0. –

回答

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

這應該回到你想要的。

數組總是有固定的大小。通過鍵入:

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

你定義數組的大小爲5。通過添加額外的「」可以「保留」一個地方的用戶名。

使用:

names[names.length - 1] = userName; 

更換了「」由用戶輸入,而不是在您的解決方案替換的第一個名字,等等。

希望這會有所幫助。快樂的編碼!

0

它看起來像你正在初始化數組名稱[]與一些值,然後用用戶輸入覆蓋值。如果你只想初始化數組,那麼你可以使用數組初始化語法。

String[] name = new String[5]; 

另外在for循環中,條件i < 1是錯誤的。它應該是我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 + ", "); 

     } 
    }