首页 > 技术文章 > Java中的关键字查找

jiangyanblog 2019-09-01 12:15 原文

题目描述

众所周知,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("查找错误!");
		}
	}
}

推荐阅读