华为机试---字符串通配符

原创 2016年05月31日 23:18:16

题目描述

问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。
要求:
实现如下2个通配符:
*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)
?:匹配1个字符


输入:
通配符表达式;
一组字符串。


输出:
返回匹配的结果,正确输出true,错误输出false


输入描述:

先输入一个带有通配符的字符串,再输入一个需要匹配的字符串

输出描述:

返回匹配的结果,正确输出true,错误输出false

输入例子:
te?t*.*
txt12.xls
输出例子:
false
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);		
		while (scan.hasNext()) {
			String str1 = scan.nextLine();
			String str2 = scan.nextLine();
			stringMatch(str1, str2);
		}//endwhile		
		scan.close();
	}
	private static void stringMatch(String str1 , String str2){
		//te?t*.*
		//txt12.xls
		boolean flag = true;
		int length = str1.length();
		String reg = "[\\d|a-z|A-Z]";
		StringBuilder sb = new StringBuilder();
		//* 匹配0个或以上   ?匹配一个
		for(int i = 0 ; i < length ; i++){
			if(str1.charAt(i) == '*'){
				sb.append(reg + "*");
			}else if(str1.charAt(i) == '?'){
				sb.append(reg + "?");
			}else{
				sb.append(str1.charAt(i));
			}
		}
		String reg_string = sb.toString();
		if(str2.matches(reg_string)){
			flag = true;
		}else{
			flag = false;
		}
		System.out.println(flag);
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

华为机试:简单密码破解、字符串通配符

1.简单密码破解 题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码...

字符串通配符匹配-2014华为机试题目

题目:子串匹配母串,如果匹配,输出子串匹配的起始位置,否则输出-1。?可以代表一个字符,*代表一个或者多个。 从键盘输入,先输入子串,再输入母串。子串母串长度均小于20。运行时间和内存无限制。 ...

华为机试 删除字符串中所有给定的子串

问题描述:  在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。 要求实现函数:  int delete_sub_str(const char *str, const ...

华为机试—输出包含名字的个数和字符串

题目: 输入一个n,再输入n个字符串,再输入一个名字串,输出包含名字串的个数和字符串。 输入: 10 sfsfjacksdf jajajack jack jjjjjjjjckd ...

java ------华为上机机试--计算字符串个数

题目描述 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。 输入描述: 输入一个有字母和数字以及空格组成的字符串,...

华为机试题目---字符串替换

题目要求:输入一个字符串,然后在输入一个整数,就是替换字符串的次数,然后依次输入需要替换的字符串……

2017年,华为机试题目 《字符串按指定重新分配》 --Java实现

一,问题描述 1,输入M个字符串,按指定长度N拆分每个字符串,输出新的字符串,长度不是N的整数倍的字符串请在后面补数字0 2,格式如下: 输入:输入整数M,N,以逗号隔开 每行一个字符串,共M...

华为机试在线训练-牛客网(18)字符串合并处理

题目描述 按照指定规则对输入的字符串进行处理。 详细描述: 将输入的两个字符串合并。 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。...

华为机试—字符串压缩

题目:字符串压缩 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩...

华为机试—字符串压缩

题目:字符串压缩 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则:  1. 仅压缩连续重...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)