2014-02-19 71 views
-2

變量PostedId包含例如7個字符串。 例如在索引0中,我看到:{「id」:「1234567890」} 我想在循環中對於 從當前索引字符串解析/提取僅數字。 所以在行:我如何解析/只得到字符串內的數字?

objFacebookClient.Delete(PostedId[i]).ToString(); 

相反PostedId [I]將{ 「ID」: 「1234567890」}它應該是唯一的:1234567890只的數量。

private void button7_Click(object sender, EventArgs e) 
     { 
      var responsePost = ""; 
      try 
      { 
       var objFacebookClient = new FacebookClient(AccessPageToken); 
       for (int i = 0; i < PostedId.Count; i++) 
       { 
        objFacebookClient.Delete(PostedId[i]).ToString(); 
       } 
      } 
      catch (Exception ex) 
      { 
       responsePost = "Facebook Posting Error Message: " + ex.Message; 
      } 
     } 

回答

0

應該很容易處理string.split或使用正則表達式來提取id的數字部分。我可以舉例如果需要

0

你在這裏的格式看起來像Json。

您可以使用 JSON.NET解析您的字符串。

1

如果我正確理解你的問題,你想獲得string中的數字,然後解析它們到int

如果是,則可以使用Char.IsDigit方法獲取字符串中的數字,並使用Int32.TryParse方法解析它。

例如;

string s = "{\"id\":\"1234567890\"}"; 
char[] array = s.Where(c => Char.IsDigit(c)).ToArray(); 
string s1 = new string(array); 
int i; 
if (Int32.TryParse(s1, NumberStyles.Integer, CultureInfo.InvariantCulture, out i)) 
{ 
    Console.WriteLine(i); 
} 

輸出將;

1234567890 

這裏一個demonstration

+0

Soner它工作但結果不好。例如,字符串中的數字是這樣的:344087212396598_344788945659758我需要保持數字的格式,包括「_」在中間。在你的代碼的結果是:344087212396598344788945659758,但我需要它:344087212396598_344788945659758 – user3200169

+0

爲什麼你不檢查我的答案,通過這種方法,你可以得到輸出像「abc12345sg456789」輸出:12345 456789數字一個接一個 –

0

你可以使用至REGx爲此, 5是你想要的最低位, numberonly輸出,strText中輸入文本打了個比方 'FaceBookResponse'

Regex _Regex = new Regex("\\d{5,}", RegexOptions.IgnoreCase); 
MatchCollection matchList = _Regex.Matches(strText); 
string NumberOnly = string.Empty; 
if (matchList.Count == 0) 
    NumberOnly = matchList(0).ToString(); 

//if strText = "Test12345Test6789" 
//Output will be 
//matchList(0) = 12345 
//matchList(1) = 6789 
0

製作類:

public class FaceBookResponse{ 
    public int id { get; set; } 
} 

然後使用JavaScriptSerializer(參考System.Web.Extensions程序):

JavaScriptSerializer serializer = new JavaScriptSerializer(); 

在for循環使用這樣的:

var obj = serializer.Deserialize<FaceBookResponse>(); 
objFacebookClient.Delete(obj.id).ToString(); 
1

基於Soner Gönül`s answer下您的意見,你可能想要做這樣的事情。

這是對該答案的修改;只是輸出結果字符串,而不解析爲int,當加入「_」時顯然不起作用。

請確保在將來的問題中包含此類原始文章中的詳細信息。

string input = "{\"id\":\"12345_67890\"}"; 
char[] array = input.Where(c => Char.IsDigit(c) || c == '_').ToArray(); 

// Will contain: "12345_67890" 
string result = new string(array);