題目描述
眾所周知,S是個大豬蹄子,所以他每次打字都很費勁,所以他在想,能不能在手機加一個功能,輸入一部分就可以補全他想要輸入什么,例如,他輸入,“按f”,自動補全為“按f進入坦克”。但是這樣有個問題,就是他想輸入的可能並不是“按f進入坦克”,而是“按f進入飛機”。所以當檢測到有多個答案匹配的時候,全部輸出即可。
輸入描述
一行一個整數n,表示S有n種想要輸入的字符串接下來n行,每行表示一個想要輸入的字符串接下來一行一個m表示有m次詢問接下來m行,每行一個字符串表示詢問的輸入
輸出描述
m行,每行一個或多個字符串表示對於每次詢問能夠匹配到的字符串輸出一行中的字符串以空格為間隔
樣例輸入
3
abc
acd
def
3
a
ac
de
樣例輸出
abc acd
acd
def
代碼
package homework3;
import java.util.Scanner;
public class JwhDay18 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n,m;
System.out.println("輸入想輸入字符串數量:");
n=in.nextInt();
String str[]=new String[n];
System.out.println("輸入字符串:");
for (int i = 0; i < str.length; i++) {
str[i]=in.next();
}
System.out.println("輸入詢問次數:");
m=in.nextInt();
System.out.println("輸入詢問字符串:");
for (int i = 0; i < m; i++) {
String str2=in.next();
int count=0;
for (int j = 0; j < str.length; j++) {
if(str[j].indexOf(str2)!=-1 && str[j].indexOf(str2, 1)==-1){ //利用String的indexOf()方法,判斷某個字符在字符串里的位置,返回值是整型,如果包含某個字符,返回結果大於0,否則結果是-1
System.out.println(str[j]); //str.indexOF(string s,int n),int n代表從當前位置查找
count++;
}
}
if(count==0)
System.out.println("查找錯誤!");
}
}
}