2016-10-02 2 views
1

сделал программу, которая подсчитывает и выводит пользователей на основе ввода пользователем. Я хочу, чтобы программа отображала имена друг за другом с разрывом строки, но зациклилась на том, как это сделать. код ниже:Создание новой строки для строки

package uk.ac.reading.cs2ja16.Glen.Stringtest; 
import java.util.Arrays; 
import java.util.Scanner; 

public class stringnames { 

    public static String[] countNames (String names) { 

     // Create Scanner object 
     @SuppressWarnings("resource") 
     Scanner names1 =new Scanner(System.in); 

     // Read a string 
     String read= names1.nextLine(); 

     // Split string with space 
     String numPeople[]=read.trim().split(" "); 

     System.out.println("The Number of names inputted is: "+ numPeople.length); 


     return numPeople; 
    } 


    public static void main(String[ ] args){ 

     System.out.println("Enter the amount of names you want(make sure you make space for each name):\n"); 
     String[] namesout = countNames(null); 
     System.out.println(Arrays.toString(namesout)); 
    } 
} 
+1

вам нужен цикл: 'для (имя строки: namesout) {System.out.println (имя);}' –

+0

Также отметим, что в 'countNames (нуль)' «null» is * strange * –

+0

Предупреждения не предназначены для подавления, пожалуйста, закройте все ресурсы, которые вы открываете, с java7 и выше, это так же просто, как с помощью [try-with-resource] (https://docs.oracle. com/javase/tutorial/essential/exceptions/tryResourceClose.html). – A4L

ответ

1

Прежде всего, метод countNames не нужен параметр, поэтому удалить этот String names штуковина в объявлении метода. И удалите слово null в вызове метода.

Теперь вы можете использовать цикл или использовать один из методов в новом Стрит API, если вы используете Java 8.

Я покажу вам оба пути.

Для цикла:

for (String name: namesout) { 
    System.out.println(name); 
} 

метод println автоматически добавляет символ новой строки в конце строки, которые вы хотите напечатать.

поток API:

Arrays.stream(namesout).forEach(System.out::println);