Как ввести 2 параметра в Java? - PullRequest
0 голосов
/ 31 октября 2018

У меня есть текстовый файл входов, который нужно подключить к Java-программе, но я не уверен, как заставить его пройти через входной текстовый файл и цикл, чтобы получить каждую пару слов из строки для сравнения длины. Я пытаюсь создать программу, которая сравнивает длину каждого символа и выводит более длинный в качестве практики при изучении Java.

in.txt

5

Яблочная морковь

Дыня банановая

Клубничный виноград

томатная груша

Киви Манго

На данный момент я использовал пакет Scanner для чтения ввода.

import java.io.*;
import java.util.Scanner;
import java.io.File;

public class MaxLength
{
  public static void main (String[] args) {
      Scanner scan = new Scanner(System.in);
      int cases = scan.nextInt();
      String first = scan.next();
      String second = scan.next();

      for (int i =0; i < cases; i++)
          check(first, second);

      sc.close();
  }
  public static void check(String first, String second)
  {
      if (first.length() > second.length())
          System.out.println(first);
      else
          System.out.println(second);
  }
}

Кажется, что он не перебирает все пары и получает только 1-ю пару строк. Я новичок в Java, и я не видел ни одного примера для этого.

Ответы [ 3 ]

0 голосов
/ 31 октября 2018

Если вы хотите последовательно сканировать ваш вход, вам нужно поместить это scan.next() в цикл. Вам также нужно знать, что scan.nextInt() просто получает целочисленное значение. Это означает, что если вы хотите получить все значения, вы должны использовать scan.next (). Также используйте цикл while с while(scan.hasNext()), чтобы увидеть, существует ли следующая строка вместо цикла for

while(scan.hasNext()){
    first = scan.next();
    second = scan.next();
    check(first, second);
}
0 голосов
/ 31 октября 2018

Используйте код ниже, как этот.

            Scanner scan = new Scanner(System.in);
            int cases = scan.nextInt();
            String first = "";
            String second = "";
            for (int i =0; i < cases; i++) {
                first = scan.next();
                second = scan.next();
                check(first, second);
            }

            scan.close();
0 голосов
/ 31 октября 2018

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

import java.io.*;
import java.util.Scanner;
import java.io.File;

public class temp
{
  public static void main (String[] args) {
      Scanner scan = new Scanner(System.in);
      int cases = scan.nextInt();
      String first = "", second = "";

      for (int i =0; i < cases; i++) {
          first = scan.next();
          second = scan.next();
          check(first, second);
      }

      scan.close();
  }
  public static void check(String first, String second)
  {
      if (first.length() > second.length())
          System.out.println(first);
      else
          System.out.println(second);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...