java将多个字符串输入到方法中

时间:2018-04-26 20:57:30

标签: java

感谢您查看我的问题。

我有三个从文本文件中读取的整数和字符的通用字符串。让我们说:

    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);

1 个答案:

答案 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...