我如何解析/获取字符串/ s中的数字?

时间:2014-02-19 08:50:49

标签: c# winforms

变量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;
            }
        }

6 个答案:

答案 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();