Я пытаюсь внедрить wild cards в Java.Поиск Wild Card в 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);
}
}
Там будет два параметра, передаваемые функции. Один - это строка, а другая - регулярное выражение.
Пример случая:
1) Если строка, переданная является «Привет б» и регулярное выражение «а * Ь», то функция должна возвращать TRUE, потому что в месте * любое количество символы могут существовать.
2) Если строка передана «a X b», а регулярное выражение «a? B», то возвращаемое значение должно быть TRUE, потому что если есть? в регулярном выражении, тогда должен быть только один символ между a и b.
В этом случае он будет работать для всех случаев. Я думаю, что логика, которую я думал, хороша, но у меня проблемы с кодированием.
Я не хочу импортировать Pattern и Matcher. Без них я должен закончить это.
Пожалуйста, помогите мне в этом, указав правильный код.
Поблагодарили
You может вызвать это что-то еще, но регулярное выражение не определено, как вы его определили. – ddmps
Почему бы вам просто не взять подстроку между 'a' и 'b' и проверить. –
спецификация, которую вы предоставили, не очень тщательна. эта система строго ограничена пробелами?что именно должно произойти, если строка соответствия - это что-то вроде '??? a? hello *! whatever'? применяются ли те же правила? если ваши строки соответствия будут такими же простыми, как ваши примеры, вы можете разделить строки на символ пробела и выполнить некоторые базовые проверки с помощью цикла, возможно, –