我正嘗試在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