Javaでワイルドカードを実装しようとしています。
ここに私が持っているコードがあります
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);
}
}
関数に渡される 2 つのパラメーターがあります。1 つは文字列で、もう 1 つは正規表現です。
例は次のとおりです。
1) 渡された文字列が「a hello b」で、正規表現が「a * b」の場合、関数は TRUE を返す必要があります。これは、* の代わりに任意の数の文字が存在できるためです。
2) 渡された文字列が "a X b" で、正規表現が "a ? b" の場合、戻り値は TRUE になるはずです。正規表現では、a と b の間には 1 文字しかないはずです。
このように、すべてのケースで機能します。私が考えたロジックは問題ないと思いますが、コーディング部分に問題があります。
パターンとマッチャーをインポートしたくありません。それらがなければ、これを完了する必要があります。
親切に、誰でもこれについて私を助けてください。
ありがとうございます