【发布时间】:2018-01-03 16:12:56
【问题描述】:
我正在尝试编写一个程序来检查一个字符串是否包含多个必须以特定顺序出现的单词,这些单词存储在字符串数组中
到目前为止我已经达到的目标
boolean Check = false;
Scanner S = new Scanner(System.in);
System.out.println("What is your question?");
String input=S.nextLine();
String[] Words = {"pay","car"};
for (int i = 0; i <= Words.length -1 ; i++) {
if (input.matches(".*\\b"+Words[i]+"\\b.*") && input.matches(".*\\b"+Words[1]+"\\b.*")) {
Check = true;
}
}
if (Check){
System.out.println("30k Dollar");
} else{
System.out.println("Wrong info! ");
}
基本上,我的代码所做的是例如当用户输入时 “我应该为这辆车付多少钱?”他会得到“30k Dollar”的答案
因为字符串“pay”和“car”都在我的字符串数组中。
案例2:如果用户输入“bla bla car bla bla pay”
他会得到同样的答案。
如何防止程序对 2 个不同的问题给出相同的答案?
在我的代码中我也使用了 Words[i] 和 Words[1],但是当我得到更大的单词列表时,这不起作用,我尝试使用嵌套循环,但它不起作用。
【问题讨论】:
-
你为什么要阻止两个问题的相同答案,我认为它们应该是相同的,这两个问题都以正确的顺序从您的数组中包含多个单词,当您说多个单词时,您的意思是两个以上?
-
对不起,我已经编辑了案例 2。即使字符串“汽车先出现,然后字符串“支付”,它也会显示相同的答案。多个词是指超过 2 个的数组单词我将如何比较