从输入中解析字符串作为参数问题

时间:2014-10-04 22:35:18

标签: java string file unix

我想在我的java程序中添加更多命令我在unix中编写但是在传递参数时遇到了问题。我刚刚使用文本文件作为程序参数输入unix命令,该程序参数工作得很好但是想要求输入。试图自己解决它,但对java有点新的

我有,

     public static void main(String[] args) 
    {
        String input = args[0];
        ///
        String count = args[1];  
        File newF = new File(input); //
        StartProcess start = new StartProcess(input, Integer.parseInt(count));   //begin 

    }

哪个工作得很好,然后尝试了这个,失败了

 public static void main(String[] args) 
    {
    //String inputFile = args[0]; //read the input file
    Scanner scanner = new Scanner(new InputStreamReader(System.in));
    System.out.println("Please enter file");
    String input = scanner.nextLine();

    System.out.println("Please enter number");
    int count = scanner.nextInt();
    //String interruptCounter = args[1];  //read the interrupt value
    File newFile = new File(input); //create a new file with the input file
    StartProcess being = new StartProcess(input, Integer.parseInt(count));   //begin 

}

所以我收到了这些错误

CPU.java:24:错误:不兼容的类型         int count = scanner.nextLine();                                     ^   必需:int   发现:字符串 CPU.java:27:错误:没有为parseInt(int)找到合适的方法         StartProcess is = new StartProcess(input,Integer.parseInt(count)); //开始运行该进程                                                             ^     方法Integer.parseInt(String)不适用       (实际参数int不能通过方法调用转换转换为String)     方法Integer.parseInt(String,int)不适用       (实际和正式的参数列表长度不同) 2个错误

4 个答案:

答案 0 :(得分:0)

count已经是一个整数 - 无需解析变量

StartProcess being = new StartProcess(input, count);

答案 1 :(得分:0)

此方法nextLine返回String而不是整数。

您可能希望改用它。

int count = scanner.nextInt();

答案 2 :(得分:0)

您输入为字符串,更改为整数,它应该有效。

答案 3 :(得分:0)

你正在重新发明轮子。请改用标准库,例如Commons CLI