Исключение новой строки при использовании метода BufferedReader для получения пользовательского ввода с использованием Java - PullRequest
1 голос
/ 14 июля 2009

В этом первом назначении мне нужно, чтобы пользователь ввел некоторое число (например, 312), затем добавил каждое число и вывел что-то вроде: «Числа 3 1 2 с суммой 6». Вот коды:

public static void main(String[] args) {
    int Max_Size = 30;
    char[] myArray = new char [Max_Size];
    String temp = " ";
    char parse;
    int sum = 0;
    int counter = 0;
    System.out.print("Please enter a non-negative integer: ");

    try{
        BufferedReader dataIn = new BufferedReader(
                new InputStreamReader(System.in));
        temp = dataIn.readLine();
    } catch (IOException e) {
        System.out.println("Error!");
    }

   System.out.print("The numbers are ");
   //put each character of the string into a char array
   for (int i = 0; i < temp.length(); i++){
     myArray[i] = temp.charAt(i);
       System.out.print(myArray[i] + " ");
    }
   //take sum of each character as an integer
    while (counter != temp.length()){
        sum = sum + (myArray[counter] - '0');
        counter++;
    }
    System.out.println("with the sum of " + sum);
}

Вот примерный прогон:

Please enter a non-negative integer: 
312
The numbers are 3 1 2 with the sum of 6
BUILD SUCCESSFUL (total time: 7 seconds)

КАК ЭТО ТАК, НОВАЯ ЛИНИЯ НЕ РАЗМЕЩЕНА ДЛЯ ВХОДА: 312? Это означает, что я хочу, чтобы это было похоже на «Пожалуйста, введите неотрицательное целое число: 312», с 312 в той же строке. Кроме того, есть ли лучший способ разобрать входные данные в целые числа и поместить его в массив целых чисел?

Ответы [ 2 ]

3 голосов
/ 14 июля 2009

Я не знаю, почему вы это видите - я только что попробовал и получил такой вывод:

Please enter a non-negative integer: 312
The numbers are 3 1 2 with the sum of 6

На какой платформе вы работаете?

Я сказал бы , что использование массива символов несколько бессмысленно, когда вы можете просто использовать charAt(), и если вы действительно делаете , хотите преобразовать ввод в символ массив, я бы вместо этого использовал String.toCharArray ().

Кроме того, если вы используете Java 1.6, я бы порекомендовал:

String temp = System.console().readLine();

как более простой способ чтения строки текста у пользователя.

0 голосов
/ 14 июля 2009

Я подозреваю, что это может быть связано с консолью NetBeans или с тем, что вы, кажется, выполняете это через Ant / Maven (возможно, вещь NetBeans).

(я предполагаю, что Ant / Maven из-за "BUILD SUCCESSFUL (total time: 7 seconds)" в конце).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...