我正尝试在Java中实现通配符。Java中的Wild Card搜索字符串
这里是我的代码有
public class Assign {
public boolean compare(String s1, String s2)
{
char [] s3 = s1.toCharArray();
char [] s4 = s2.toCharArray();
int i,j;
int k = 0;
for(i=0;i<s3.length;i++)
{
for(j=0;j<s4.length;j++)
{
if(s3[i] == s4[j])
{
if(s4[j] == '*')
{
i++;
if(s3[i] == s4[s4.length-1])
{
return true;
}
}
}
}
}
return false;
}
public static void main(String args[])
{
Assign a = new Assign();
boolean r = a.compare("a hello b", "a * b");
System.out.println(r);
}
}
会有要传递给函数的两个参数。一个是字符串,另一个是正则表达式。
实施例的情况下是:
1)如果传递的字符串是“你好b”和正则表达式是“A * B”,则该函数应该因为在*任何数量的字符可以代替返回TRUE存在。 2)如果传递的字符串是“a X b”并且正则表达式是“a?b”,那么返回值应该是TRUE,因为如果有?在正则表达式中,a和b之间应该只有一个字符。
像这样,它应该适用于所有情况。我认为我认为的逻辑很好,但我在编码部分遇到麻烦。
我不想导入模式和匹配器。没有他们,我必须完成这一点。
请问,任何人都可以帮助我解决这个问题。
感谢你
为什么不使用对Java内置的正则表达式的支持? – Petr 2013-03-27 13:23:34
你的正则表达式是错误的。它应该是“a。* b” – 2013-03-27 13:24:34
除了你的正则表达式是错误的,首先看看这个:http://docs.oracle.com/javase/6/docs/api/java/util/regex/package- summary.html – 2013-03-27 13:25:28