Java 如何将两种方法放在一起?

Java 如何将两种方法放在一起?,java,Java,我正在创建一个程序,要求用户输入和输出的名称。代码要求用户输入文件和输出文件的名称。这将分为不同的方法。一个名为getInputFileName(),另一个名为getOutputFileName(),两者都将返回字符串对象。方法标题如下所示: public static String getInputFileName() public static String getOutputFileName() public static void processTickets(String inpu

我正在创建一个程序,要求用户输入和输出的名称。代码要求用户输入文件和输出文件的名称。这将分为不同的方法。一个名为getInputFileName(),另一个名为getOutputFileName(),两者都将返回字符串对象。方法标题如下所示:

public static String getInputFileName()

public static String getOutputFileName()
public static void processTickets(String inputFileName, String outputFileName)
这两种方法都将要求用户输入适当的文件名并以字符串形式返回该名称。这些方法将从主方法调用。它们返回一个字符串,因此在调用方法之前应该声明两个字符串变量

程序的其余部分应包含在另一个方法中。此方法标头如下所示:

public static String getInputFileName()

public static String getOutputFileName()
public static void processTickets(String inputFileName, String outputFileName)
我试图将这两个方法
inputFileName
outputFile
name放在一起,但我不断出错

这是当它们是单独的方法时的程序:

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;


public class WebberProject3Test1 {

private static Map<String, Integer> ticketTypeToPrice = new HashMap<String, Integer>();
private static final String SPACE = " ";
private static final String CURRENCY_SYMBOL = " $";



public static void getInputFileName() {
 // Create Scanner object for keyboard input. 
  Scanner keyboard = new Scanner(System.in);

  //Get the file name
    System.out.println("Enter the input filename here : ");
    String filename = keyboard.nextLine();

    //Open the file.
    File file = new File(filename);
    System.out.println(filename);
}

public static void getOutputFileName() {
 // Create Scanner object for keyboard input. 
  Scanner keyboard = new Scanner(System.in);

  //Get the file name
    System.out.println("Enter the output filename here : ");
    String filename = keyboard.nextLine();

    //Open the file.
    File file = new File(filename);
    System.out.println(filename);
}



public static void main(String[] args) {
    Scanner scanner = null;
    PrintWriter outputFile = null;
    DecimalFormat decimalFormat = new DecimalFormat();
    decimalFormat.setMinimumFractionDigits(2);
    getInputFileName();
    getOutputFileName();
    try {
        File file = new File("portlandvip2.txt");
        scanner = new Scanner(file);
        outputFile = new PrintWriter("portland2out.txt");
        while (scanner.hasNext()) {
            String line = scanner.nextLine();
            String[] entriesOnLine = line.split(" ");
            // Line with price and ticket type
            if (entriesOnLine.length == 2) {
                ticketTypeToPrice.put(entriesOnLine[0],    Integer.parseInt(entriesOnLine[1]));
                StringBuilder sb = new StringBuilder();
                sb.append(entriesOnLine[0])
                        .append(CURRENCY_SYMBOL)
                        .append(decimalFormat.format(Integer.parseInt(entriesOnLine[1])));
                outputFile.println(sb.toString());
            } else if (entriesOnLine.length == 4) {
                //Line with First Name, Last Name, number of Tickets and Price
                int numberOfTickest = Integer.parseInt(entriesOnLine[2]);
                int ticketPrice = ticketTypeToPrice.get(entriesOnLine[3]);
                int totalPrice = numberOfTickest * ticketPrice;
                StringBuilder sb = new StringBuilder();
                sb.append(entriesOnLine[0])
                        .append(SPACE)
                        .append(entriesOnLine[1])
                        .append(CURRENCY_SYMBOL)
                        .append(decimalFormat.format(totalPrice));
                outputFile.println(sb.toString());
            }
        }
    } catch (IOException e) {
        System.out.println("exception:" + e);
    } finally {
        scanner.close();
        outputFile.close();
    }
}
}
导入java.io.File;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.text.DecimalFormat;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.Scanner;
公共类Weberproject3test1{
私有静态映射ticketTypeToPrice=newhashmap();
私有静态最终字符串空间=”;
私有静态最终字符串CURRENCY_SYMBOL=“$”;
公共静态void getInputFileName(){
//为键盘输入创建扫描仪对象。
扫描仪键盘=新扫描仪(System.in);
//获取文件名
System.out.println(“在此处输入文件名:”);
字符串文件名=keyboard.nextLine();
//打开文件。
文件=新文件(文件名);
System.out.println(文件名);
}
公共静态void getOutputFileName(){
//为键盘输入创建扫描仪对象。
扫描仪键盘=新扫描仪(System.in);
//获取文件名
System.out.println(“在此处输入输出文件名:”);
字符串文件名=keyboard.nextLine();
//打开文件。
文件=新文件(文件名);
System.out.println(文件名);
}
公共静态void main(字符串[]args){
扫描器=空;
PrintWriter outputFile=null;
DecimalFormat DecimalFormat=新的DecimalFormat();
decimalFormat.setMinimumFractionDigits(2);
getInputFileName();
getOutputFileName();
试一试{
File File=新文件(“portlandvip2.txt”);
扫描仪=新扫描仪(文件);
outputFile=新的PrintWriter(“portland2out.txt”);
while(scanner.hasNext()){
字符串行=scanner.nextLine();
String[]entriesOnLine=line.split(“”);
//与价格和门票类型一致
if(entriesOnLine.length==2){
ticketTypeToPrice.put(entriesOnLine[0],Integer.parseInt(entriesOnLine[1]);
StringBuilder sb=新的StringBuilder();
sb.追加(entriesOnLine[0])
.append(货币符号)
.append(decimalFormat.format(Integer.parseInt(entriesOnLine[1]));
println(sb.toString());
}else if(entriesOnLine.length==4){
//列上名字、姓氏、票数和价格
int numberoftickst=Integer.parseInt(entriesOnLine[2]);
int ticketPrice=ticketTypeToPrice.get(entriesOnLine[3]);
int totalPrice=numberOfTickest*ticketPrice;
StringBuilder sb=新的StringBuilder();
sb.追加(entriesOnLine[0])
.append(空格)
.append(entriesOnLine[1])
.append(货币符号)
.append(decimalFormat.format(totalPrice));
println(sb.toString());
}
}
}捕获(IOE异常){
System.out.println(“异常:+e”);
}最后{
scanner.close();
outputFile.close();
}
}
}
这是我尝试将这些方法放在一起后的程序:

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;


public class WebberProject3Test3 {

private static Map<String, Integer> ticketTypeToPrice = new HashMap<String, Integer>();
private static final String SPACE = " ";
private static final String CURRENCY_SYMBOL = " $";


final static Scanner scanner = new Scanner(System.in);

public static String getInputFileName() {
System.out.print("Enter input file: ");
return scanner.nextLine();
}

public static String getOutputFileName() {
System.out.print("Enter output file: ");
return scanner.nextLine();
}

public static void processTickets(String inputFileName, String outputFileName) 
{
Scanner scanner = null;
    PrintWriter outputFile = null;
    DecimalFormat decimalFormat = new DecimalFormat();
    decimalFormat.setMinimumFractionDigits(2);

    try {
        File file = new File(inputFileName);
        scanner = new Scanner(file);
        outputFile = new PrintWriter("portland2out.txt");
        while (scanner.hasNext()) {
            String line = scanner.nextLine();
            String[] entriesOnLine = line.split(" ");
            // Line with price and ticket type
            if (entriesOnLine.length == 2) {
                ticketTypeToPrice.put(entriesOnLine[0], Integer.parseInt(entriesOnLine[1]));
                StringBuilder sb = new StringBuilder();
                sb.append(entriesOnLine[0])
                        .append(CURRENCY_SYMBOL)
                        .append(decimalFormat.format(Integer.parseInt(entriesOnLine[1])));
                outputFile.println(sb.toString());
            } else if (entriesOnLine.length == 4) {
                //Line with First Name, Last Name, number of Tickets and Price
                int numberOfTickest = Integer.parseInt(entriesOnLine[2]);
                int ticketPrice = ticketTypeToPrice.get(entriesOnLine[3]);
                int totalPrice = numberOfTickest * ticketPrice;
                StringBuilder sb = new StringBuilder();
                sb.append(entriesOnLine[0])
                        .append(SPACE)
                        .append(entriesOnLine[1])
                        .append(CURRENCY_SYMBOL)
                        .append(decimalFormat.format(totalPrice));
                outputFile.println(sb.toString());
            }
        }
    } catch (IOException e) {
        System.out.println("exception:" + e);
    } finally {
        scanner.close();
        outputFile.close();
    }
}




public static void main(String[] args) {
processTickets(getInputFileName(), getOutputFileName());
}
}
导入java.io.File;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.text.DecimalFormat;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.Scanner;
公共类韦伯项目3测试3{
私有静态映射ticketTypeToPrice=newhashmap();
私有静态最终字符串空间=”;
私有静态最终字符串CURRENCY_SYMBOL=“$”;
最终静态扫描仪=新扫描仪(System.in);
公共静态字符串getInputFileName(){
System.out.print(“输入文件:”);
返回scanner.nextLine();
}
公共静态字符串getOutputFileName(){
System.out.print(“输入输出文件:”);
返回scanner.nextLine();
}
公共静态void进程票证(字符串inputFileName、字符串outputFileName)
{
扫描器=空;
PrintWriter outputFile=null;
DecimalFormat DecimalFormat=新的DecimalFormat();
decimalFormat.setMinimumFractionDigits(2);
试一试{
文件文件=新文件(inputFileName);
扫描仪=新扫描仪(文件);
outputFile=新的PrintWriter(“portland2out.txt”);
while(scanner.hasNext()){
字符串行=scanner.nextLine();
String[]entriesOnLine=line.split(“”);
//与价格和门票类型一致
if(entriesOnLine.length==2){
ticketTypeToPrice.put(entriesOnLine[0],Integer.parseInt(entriesOnLine[1]);
StringBuilder sb=新的StringBuilder();
sb.追加(entriesOnLine[0])
.append(货币符号)
.append(decimalFormat.format(Integer.parseInt(entriesOnLine[1]));
println(sb.toString());
}else if(entriesOnLine.length==4){
//列上名字、姓氏、票数和价格
int numberoftickst=Integer.parseInt(entriesOnLine[2]);
int ticketPrice=ticketTypeToPrice.get(entriesOnLine[3]);
国际总价
public static void main(String[] args) {
    processTickets(getInputFileName(), getOutputFileName());
}
String filename = keyboard.nextLine();
public static String getInputFileName() {
getInputFileName();
String filename = keyboard.nextLine();
import java.util.Scanner;

class Test {
  final static Scanner scanner = new Scanner(System.in);

  public static String getInputFileName() {
    System.out.print("Enter input file: ");
    return scanner.nextLine();
  }

  public static String getOutputFileName() {
    System.out.print("Enter output file: ");
    return scanner.nextLine();
  }

  public static void processTickets(String inputFileName, String outputFileName) {
    /* All your processing code here */
  }

  public static void main(String[] args) {
    processTickets(getInputFileName(), getOutputFileName());
  }
}
  public static void main(String[] args) {
    if(args.length == 2) {
      processTickets(args[0], args[1]);
    } else {
      processTickets(getInputFileName(), getOutputFileName());
    }
  }