2015-10-22 19 views
0
public class StringMerger { 
public static boolean isMerge(String s, String part1, String part2) { 
     for (int i = 0; i < part1.length(); i++) 
      { 
       s = s.replaceAll(part1.substring(i, i+1) , ""); 
      } 
     for (int a =0; a < part2.length(); a++) 
      { 
       s = s.replaceAll(part2.substring(a , a+1) , ""); 
      } 
     return (s.length() == 0); 
} 
} 

我想看看給出part1和part2的兩個字符串是否可以組合來創建給定的字符串s在Java中,什麼是懸空元字符,我該如何糾正這個錯誤?

這適用於大多數常規情況。
然而,A類特殊情況下,我不斷收到一個錯誤:

Dangling meta character `+` near index 0 

它並不總是公正+,有時它會*?

什麼是懸擺元字符,有什麼辦法讓我糾正這個給定的代碼。

+0

如果您提供了一些演示此問題的示例數據,這將有所幫助。 – John3136

+2

可能的重複:[http://stackoverflow.com/questions/16217627/string-split-at-a-meta-character](http://stackoverflow.com/questions/16217627/string-split-at-a-元字符) – User528491

回答

2

replaceAll的第一個參數是一個正則表達式。改爲使用replace

+0

謝謝你,先生,這工作就像一個魅力。 –

+0

@THOMASOCONNOR如果回答了您的問題,您應該點擊答案左側的複選標記。這會提高我的聲譽,並且會提高您的接受率,以便其他人更有可能在未來回答您的問題。 –

2

'+','*','?'其他人是元字符。 replaceAll接受正則表達式作爲它的參數。因此,當您嘗試使用replaceAll時,這些字符將被視爲正則表達式的一部分。要利用它們,你將不得不逃脫它們。

相關問題