变量PostedId包含例如7个字符串。 例如,在索引0中,我看到:{“id”:“1234567890”} 我想循环FOR 要解析/提取当前索引字符串中的数字。 所以在行:
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 :(得分: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
。
答案 1 :(得分: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);
答案 2 :(得分:0)
应该很容易使用string.split或使用正则表达式来提取id的数字部分。如果需要我可以给出一个例子
答案 3 :(得分:0)
你在这里的格式看起来像Json。
你可以使用 JSON.NET来解析你的字符串。
答案 4 :(得分:0)
你可以使用正则表达式, 5是你想要的最小数字, 仅输出数字,strText是输入文本
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
答案 5 :(得分:0)
让类调用例如'FaceBookResponse':
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();