用java语言编写命令行程序
我需要为学校制作一个输入两个字符串的程序——一个包含一个句子,另一个包含一个单词。程序应该搜索单词在句子中出现的次数。我是这样做的(下面的代码),它的工作,但老师拒绝接受这种方式。她想让我用“命令行”来工作,因为我是一个乞丐,我不明白这将如何工作。希望能在代码方面得到一些帮助用java语言编写命令行程序,java,Java,我需要为学校制作一个输入两个字符串的程序——一个包含一个句子,另一个包含一个单词。程序应该搜索单词在句子中出现的次数。我是这样做的(下面的代码),它的工作,但老师拒绝接受这种方式。她想让我用“命令行”来工作,因为我是一个乞丐,我不明白这将如何工作。希望能在代码方面得到一些帮助 import java.util.Scanner; class Search{ public static void main(String args[]) { String text; Stri
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!");
}
}
您可以保持大部分代码不变。只需使用字符串声明进行以下简单调整:
String text = args[0];
String word = args[1];
这是假设您先键入句子,然后键入要搜索的单词。main中的
args
数组保存使用命令行运行程序时输入的任何参数。args是一个数组,您可以在其中找到用户在命令行中输入的字符串!可以像普通数组一样使用它
例如:
使用args[0]您可以获得命令行的第一个单词。我相信您的老师想要的是能够像这样运行您的程序:
java -cp . Search "The quick brown fox jumps over the lazy dog." "the"
您的程序将使用
args
数组获取句子和单词的值,而不是用户必须在提示下键入每个值。laiello说的是正确的
String text = args[0];
String word = args[1];
在执行程序时,您需要:
java Search "this is the sentence containing words" "words"
只是为了给它添加另一个想法,你实际上不需要一个循环
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);
因为只有一个字符串
操作,所以这更有效。其他一切都是基本的算术。只是一些值得思考的事情
在这里,使用命令行可能意味着程序一次性接受命令行的参数。这就是你运行程序的方式
java Search "fox" "The fox jumped"
在这种情况下,fox作为args[0]传递,句子作为args[1]传递。那么代码中唯一需要的更改就是用args[1]替换文本,用args[0]替换word。只需确保传递参数的顺序与代码中的处理顺序相匹配。您是否要求老师澄清?他们说了什么?String[]args是您将在引号中的句子中使用的变量(“类似于此的东西”),然后它是一个命令行参数。