如何在Java中输入参数?
我有一个要插入java程序的输入文本文件,但我不知道如何让它通过输入文本文件和循环,从行中获取每对单词来比较长度。我试图制作一个程序,比较每个字符的长度,并在学习java时输出较长的字符作为练习 in.txt 五, 苹果胡萝卜 瓜香蕉 草莓葡萄 番茄梨 猕猴桃芒果 我现在做的是使用Scanner包读取输入如何在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
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中,在循环内声明变量不是问题,除非您不在同一范围内再次声明变量