如何在Java中输入参数?

如何在Java中输入参数?,java,input,Java,Input,我有一个要插入java程序的输入文本文件,但我不知道如何让它通过输入文本文件和循环,从行中获取每对单词来比较长度。我试图制作一个程序,比较每个字符的长度,并在学习java时输出较长的字符作为练习 in.txt 五, 苹果胡萝卜 瓜香蕉 草莓葡萄 番茄梨 猕猴桃芒果 我现在做的是使用Scanner包读取输入 import java.io.*; import java.util.Scanner; import java.io.File; public class MaxLength { pub

我有一个要插入java程序的输入文本文件,但我不知道如何让它通过输入文本文件和循环,从行中获取每对单词来比较长度。我试图制作一个程序,比较每个字符的长度,并在学习java时输出较长的字符作为练习

in.txt

五,

苹果胡萝卜

瓜香蕉

草莓葡萄

番茄梨

猕猴桃芒果

我现在做的是使用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);
  }
}
import java.io.*;
导入java.util.Scanner;
导入java.io.File;
公共类最大长度
{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int cases=scan.nextInt();
String first=scan.next();
String second=scan.next();
对于(int i=0;isecond.length())
System.out.println(第一);
其他的
系统输出打印项次(秒);
}
}

看起来它并没有遍历所有的字符串对,而是只得到第一个字符串对。我是java新手,我没有见过任何这样的例子。

问题是你没有循环,我的意思是你的输入读数不在循环中,所以你应该将代码更改为:

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);
  }
}
import java.io.*;
导入java.util.Scanner;
导入java.io.File;
公共类临时工
{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int cases=scan.nextInt();
字符串first=“”,second=“”;
对于(int i=0;isecond.length())
System.out.println(第一);
其他的
系统输出打印项次(秒);
}
}

如果要连续扫描输入,需要将该
扫描.next()
放入循环中。 您还需要知道,
scan.nextInt()
只获取一个整数值。这意味着,如果要获取所有值,应该使用scan.next()。还可以将while循环与
while(scan.hasNext())
一起使用,以查看是否存在下一行而不是for循环

while(scan.hasNext()){
    first = scan.next();
    second = scan.next();
    check(first, second);
}

像这样使用下面的代码

            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();
Scanner scan=新的扫描仪(System.in);
int cases=scan.nextInt();
字符串优先=”;
字符串秒=”;
对于(int i=0;i
用于(int i=0;i在这里删除分号@PandeyAmit cool它运行,但它似乎只得到输入的第一行?我不知道如何将其循环到所有行也设置了循环,但它只会重新打印第一行的答案?其中
检查()
函数已定义?我已更新代码以显示检查函数问题约束表明输入格式已知,并且有一行中以空格分隔的
字符串对,因此for方法足够好!我已经试过了,但效果很好,但我需要将它限制在第一行所述的案例数量。我试过将扫描放在下一行,它产生了一个错误,变量first可能没有初始化?在检查函数中,它没有编译,或者只是一个警告?@Funky您可以在读取之前将变量初始化为一些空字符串。它显示错误:variable first可能尚未初始化。但我已经像你建议的那样在循环外初始化了它?@Funky我编辑了答案,它按预期工作。:)它说我不能在循环内声明变量。我已经更改了在循环外声明的
第一个
第二个
变量的代码,并用空字符串初始化了它。顺便说一下,在java中,在循环内声明变量不是问题,除非您不在同一范围内再次声明变量