Я пытаюсь принять ввод в конкретной форме с разделенными пробелами - PullRequest
2 голосов
/ 19 июня 2019

Я пытаюсь получить ввод в определенной форме с первой строкой, содержащей количество запросов, и следующими строками, каждая из которых содержит четыре целых числа, разделенных пробелами.Я пытался написать как приведенный ниже код, но я получаю сообщение об ошибке «Не удается найти символ».Например: -

1
1 1 3000 100000000
2
5 5 5000 100020000
7 7 2444 21412414124
import java.io.*;
import java.util.*;

public class Solution {

    public void solveProb(int a, int d, int n, int x) {
        System.out.println(a+d + n + x);
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int q = scan.nextInt();
        while (q > 0) {
            String[] s = scan.nextLine().split(" ");
            solveProb(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));
            q-- ;
        }



    }
}

1 Ответ

2 голосов
/ 19 июня 2019

Вы используете Integer.parseInt(String[0]) с String[0], когда оно должно использовать s[0] и так далее с каждым из остальных. Вы вызываете массивы, используя variableName[index].

Дополнительно для вызова solveProb вам нужно либо сделать его public static void, либо создать Object класса Solution с Solution sol = new Solution() и вызвать его с sol.solveProb(VALUES)

РЕДАКТИРОВАТЬ: Чтобы исправить NumberFormatException, добавьте scan.nextLine(); перед циклом while следующим образом:

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int q = scan.nextInt();
        scan.nextLine();
        while (q > 0) 
        {
            String[] s = scan.nextLine().split(" ");
            solveProb(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));
            q-- ;
        }     
    }

    public static void solveProb(int a, int d, int n, int x) 
    {
        System.out.println(a+d + n + x);
    }

Вам нужно перейти на следующую строку после использования nextInt, так как вы пытаетесь вызвать nextLine и прочитать его, не переходя к следующей строке.

Держите внутреннюю часть петли такой же, не удаляйте другую nextLine.

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