2012-12-21 103 views
-1

我有2個字符串,如何從字符串中刪除字符列表?而不陣列

String a = "ABC"; 
String b = "ACDEFGCHIJAAC"; 

欲從第一個離開「B」去除第二字符串中的所有字符。

A和C在字符串b中,因此它們被刪除,但B不在字符串b中,因此它仍然存在。

任何想法?

+0

什麼語言?! – Neal

回答

0

將字符串a中的字符循環並檢查b是否包含該字符。如果該字符不在b中,則將其添加到新的StringBuilder中。當你完成循環時,StringBuilder將保存結果。

+0

生病就馬上試試。 – Mosaab

+0

我不能使用一系列的char值。只是字符串。 – Mosaab

2

試試這個:

String a = "ABC"; 
String b = "ACDEFGCHIJAAC"; 
String answer = Regex.Replace(a, "[" + b + "]*", ""); 
+0

使用正則表達式不是很快,但優雅。不錯的代碼。 – MrSmith42

+0

什麼是正則表達式? – Mosaab

+0

我不能導入任何東西,只是使用字符串和它的方法。 – Mosaab

0

爲什麼不陣列?所有的字符串真的是一個字符數組!

還有的做這件事的方式負荷 - 這裏是一個不錯的方法

using System; 
using System.Linq; 
namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      String a = "ABC"; 
      String b = "ACDEFGCHIJAAC"; 

      var result = new string(a.ToCharArray().Where(p => !b.Contains(p)).ToArray()); 
      Console.WriteLine(result); 
     } 
    } 
} 
+0

即時通訊不允許使用toCharArray() – Mosaab

+0

這聽起來很像作業:-) –

+0

它是:),剩下的就是做刪除mothode。 – Mosaab

0

謝謝大家。我做的。

String a = "ABC"; 
    String b = "ABQ"; 
    String x1 = ""; 
     for (int j = 0; j < a.length(); j++) { 
      System.out.println(a.substring(j, j+1)); 
      if(!(b.contains(a.substring(j, j+1)))){ 
       x1 +=a.charAt(j); 

      } 


     } 
     System.out.println("the answer is " + x1); 
相關問題