向用户询问命令,包括文件名混乱

时间:2018-10-31 19:57:59

标签: java arrays reader

在程序的这一部分,我要求用户输入命令和文件名。该命令可以是“读取”,“内容”或“计数”。在所有不同的任务中,我需要一个文件。我希望用户在控制台中输入类似的内容:

I have got a solution to this problem.

**STEP (1)**

Add the below code in functions.php file

<!-- product_brand is your taxonomy name. Can be viewable from admin -->

 add_filter( 'register_taxonomy_args', function( $args, $taxonomy ){


  if( 'product_brand' === $taxonomy && is_array( $args ) ){
    $args['rewrite']['slug']       = '/';
    $args['rewrite']['with_front'] = false;
  }
  return $args;
}, 99, 2 );

**STEP (2)**

Save and refresh your permalink 


** Code tested and its working fine.

由于某种原因,我不知道如何在1个命令中实现这一点。现在,我首先询问文件名,然后询问如何处理文件名。以下示例是“ read”命令,该命令要求一个文件并计算该文件中的所有单词:

read Alice's Adventures In Wonderland.txt

case "read":
            int nrWords=countAllWords();
            System.out.println("The number of words in this file is: "+nrWords+"\n");
            break;

有人可以解释一下我如何将这两个命令适合我的代码理解与什么相关的一句话吗?

2 个答案:

答案 0 :(得分:0)

相反,您可以在此处使用split函数来拆分命令,如下所示:

String line = bufferedReader.readLine();
String command = line.split(" ")[0];
String fileName = line.substring(command.length);

这样,您的fileName将是String的其余部分,而命令只是第一个元素。 command应该是命令,fileName应该是文件名。

答案 1 :(得分:0)

如果在一个输入中获得了整个命令,则可以解析出第一个单词-理解这是“动作”-然后剩下的就是文件名。

所以首先您将获得整个命令:

Scanner input=new Scanner(System.in);
System.out.println("Please enter command: ");
String command = input.nextLine();

然后,您将要分析动作。永远是第一个字。

String action = command.substring(0, command.indexOf(' ')).trim();
String fileName = command.substring(command.indexOf(' ')).trim();

现在,您可以检查操作是什么,并根据需要使用文件。

String的indexOf方法将返回指定字符第一次出现的索引。因此,在这种情况下,我们使用它来获取第一个空格的索引。请注意,如果不存在该字符,indexOf将返回-1,因此您需要为此适当地进行陷阱。 (示例场景:用户仅输入“ read”而没有文件名。)