使用java中的命令行编程

时间:2014-11-03 17:22:07

标签: java

我需要为进入2个字符串的学校制作程序 - 其中一个包含一个句子而另一个包含一个单词。程序应该搜索单词在句子中出现的次数。我做了这样的程序(下面的代码)并且它正在工作,但老师拒绝接受这种方式。她希望我让它与“命令行”一起工作,因为我是一个初学者,我不明白这是怎么回事。很想得到代码的帮助......

import java.util.Scanner;

class Search{
public static void main(String args[])
    {
    String text;
    String word;
    int found=0;
    Scanner in = new Scanner(System.in);
    System.out.println("Sentence: ");
    text= in.nextLine();
    System.out.println("Word: ");
    word=in.nextLine();
        for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; ) 
        {
        found++;
        } 
    System.out.println("The word was found "+found+" times!");
    }
}

6 个答案:

答案 0 :(得分:3)

laiello说的是对的!

String text = args[0];
String word = args[1];

并且在执行程序时执行:

java Search "this is the sentence containing words" "words"

答案 1 :(得分:2)

您可以保持大部分代码相同。只需使用字符串声明进行简单的调整:

String text = args[0];
String word = args[1];

这假设您先输入句子,然后输入您要搜索的单词。您使用命令行运行程序时,main中的args数组包含您输入的任何参数。

答案 2 :(得分:1)

我相信老师正在寻找的是能够像这样运行你的程序:

java -cp . Search "The quick brown fox jumps over the lazy dog." "the"

您的程序将使用args数组来获取句子和单词的值,而不是用户必须在提示符下键入每个值。

答案 3 :(得分:1)

在这里使用命令行可能意味着程序一次接受来自命令行的参数。这就是你运行程序的方式

java Search "fox" "The fox jumped"

在这种情况下,fox作为args [0]传递,句子作为args [1]传递。然后,您在代码中需要的唯一更改是用args [1]替换文本,用args [0]替换word。只需确保传递参数的顺序与代码中的处理顺序相匹配。

答案 4 :(得分:0)

args是一个数组,您可以在其中找到用户在命令行中输入的字符串!您可以像普通数组一样使用它。

例如: 使用args [0],您将获得命令行的第一个单词。

答案 5 :(得分:0)

只是为此添加另一个想法,你实际上并不需要一个循环。

int diff = text.replaceAll(word, "").length();
int numberOfWords = (text.length() - diff) / word.length();
System.out.println("The number of times " + word + " appears in the text is " + numberOfWords);

这更有效,因为只有一个String操作。其他一切都是基本的算术。只是值得思考的东西!

这是工作在IDEOne