2016-05-17 33 views
0

我需要在字符串上搜索子字符串。訣竅是: - 這是我不在乎的一封信。 - 該信件需要在那裏有一個字母,但是哪一個字母並不重要。在字符串中搜索字符串「DO NOT CARE FLAG」

- "MQINEEIR" - match, same 
- "MQINEELR" - match, one I is L the othe is L 
- "MQLNEELR" - match, both I are L 
- MQXNEEIR - match becouse X stand for I, but ideally I would like to allow only L. But for simplicity, I will allow it. 

  • 「MQINEER」 不匹配: - 字母比較字符串時是 「我」,所以

    因此,例如subsrting 「MQINEEIR」因爲我錯過了,而不是那封信。

    • MQINEEIX不匹配becouse有X與其使用R,我只允許我

我覺得變化,這可能使用模式匹配來解決,我但不知道如何?

+0

你需要更好地解釋比賽的條件。有太多未指明的可能性。例如,如果目標是「MQINEEIX」呢?或'MQXNEEIR'? 'MQINEEIRX'如何? –

+0

你的問題不是很清楚,你想匹配字符串'MQINEEIR',其中'I'和'L'可以被替換嗎?我會建議熟悉正則表達式 – user1875195

+0

不,正則表達式不會解決這個問題。 –

回答

3

嘗試String.matches(String)方法:

String s = "MQLNEELR"; 
System.out.println(s.matches("MQ.NEE.R")); 

這可能是值得熟悉正則表達式。

+0

對不起......「MQLNEELR」就是一個例子,它可以是任何字符串,例如「MQLNEELR」;將是一個變量。除非我能插入「。」每當我看到字符串上的「我」時。 – user836026

+0

或者,如果您需要匹配子字符串,請創建一個像這樣的Matcher m = Pattern.compile(「MQ.NEE.R」).matcher(s)'的匹配器,然後用'm.find()'掃描。 – Rinke

+0

@ user836026所以,讓它成爲一個變量。另外,如果您只想匹配小寫字母L或大寫字母I而不是任何字符,則可以用'[lI]'替換該點。正則表達式非常酷,你可能會喜歡它。 – Rinke