感谢您查看我的问题。
我有三个从文本文件中读取的整数和字符的通用字符串。让我们说:
Scanner keyboard = new Scanner(System.in);
String filename = keyboard.nextLine();
System.out.println("You have loaded file: "+filename);
File file = new File(filename);
Scanner inputFile = new Scanner(file);
String element1 = inputFile.nextLine();
String element2 = inputFile.nextLine();
String element3 = inputFile.nextLine();
程序的目标是获取每个字符串,检查输入错误,解析字符和整数的结果,然后打印内容。如何让程序为剩下的两个字符串执行此操作?
示例输入:
1 e 4 5 8 7 e 5
1 4 4 f 5 6 8 1
7 8 2 8 3 7 2 8
我对每个字符串的预期输出:
System.out.println("stuff :" +someInt);
System.out.println("stuff :" +someInt);
System.out.println("stuff :" +someString);
System.out.println("stuff :" +someString);
我用整数理解这个概念:
int result = someCalculation(someint, someint, someint, someint );
public int someCalculation(int num1, int num2, int num3, int num4)
{
int result=(((int) num1)*5*56*2)+(((int) num2)*54*2)+(((int) num3)*3)+((int) num4);
return result;
}
我在main()中寻找类似这样的东西,它将采用字符串元素1,然后是元素2,然后是元素3,并将字符串输入到方法中。
myExpectedOutput = myCalculations(element1);
myExpectedOutput = myCalculations(element2);
myExpectedOutput = myCalculations(element3);
我想要这样的东西,每个元素都可以输入到方法中,然后它将返回print语句。
public void myCalculations(String element1) //
{
String newElement= element1.toUpperCase();
String[] tokens = newElement.split(" ");
String part1= tokens[0];
String part2= tokens[1];
. . . .
String part6= tokens[6];
String part7= tokens[7];
boolean game = true;
try
{
do
{
for (int i=0; i<tokens[0].length(); i++) {
c = element1Upper.charAt(index);
}
}
}
}
etc etc
System.out.println("stuff :" +someInt);
System.out.println("stuff :" +someInt);
System.out.println("stuff :" +someString);
System.out.println("stuff :" +someString);
答案 0 :(得分:0)
如果我理解正确你可以通过让myCalculations方法返回一个字符串列表来解决这个问题,然后你可以遍历该列表来打印每个字符串。
public List<String> myCalculations(String element) {
List<String> printList = new ArrayList<>();
//parsing and calculating here
//when adding a print string you do something like
printList.add(String.format("stuff : %d", someInt));
// or
printList.add("stuff :" + someString);
//return list
return printList;
}
并使用
List<String> list = myCalculations(element1);
for (String str : list)n {
System.out.println(str);
}
以下是关于工作流程外观的建议
Scanner inputFile = new Scanner(file);
List<String> inputList = new ArrayList<>();
while (inputFile.hasNextLine()) {
inputList.add(inputFile.nextLine());
}
//other stuff?
for (String element : inputList) {
List<String> list = myCalculations(element);
for (String str : list)n {
System.out.println(str);
}
}
当然,如果您想要一起打印或者在打印前对输出执行其他操作,您可以将所有输出收集到一个大列表中
List<String> allOutput = new ArrayList<>();
for (String element : inputList) {
allOutput.addAll(myCalculations(element));
}
//use allOutput later...