【问题标题】:how to take the part of a string如何取字符串的一部分
【发布时间】:2014-02-17 09:45:51
【问题描述】:

我如何获取这个字符串的一部分:

string="<ArrayOfArrayOfKeyValueOfstringstring xmlns:d1p1="http://www.w3.org/2001/XMLSchema" i:type="d1p1:base64Binary" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">0RuHA6OkPMP7myQPAR4ZDMoB8mo=</ArrayOfArrayOfKeyValueOfstringstring>";

我只需要获取这部分“0RuHA6OkPMP7myQPAR4ZDMoB8mo”,如何以编程方式划分我需要的部分?

它不是 xml,它是系统在我询问电话详细信息时返回给我的字符串,我只需要获取 IMEI 的一部分:

 Object obj = DeviceExtendedProperties.GetValue("DeviceUniqueId");
 byte[] objByte = ObjectToByteArray(obj);
 IMEI = System.Text.Encoding.UTF8.GetString(objByte, 0, objByte.Length);

这个 ObjectToByteArray():

 private byte[] ObjectToByteArray(Object obj)
        {
            DataContractSerializer serializer = new DataContractSerializer(typeof(List<Dictionary<String, String>>));

            byte[] byteArr;

            using (var ms = new System.IO.MemoryStream())
            {
                serializer.WriteObject(ms, obj);
                byteArr = ms.ToArray();
            }
            return byteArr;

我通过这种方式使用拆分和替换来剪切字符串:

 a1 = IMEI.Split(IMEIerrato, 2 ,StringSplitOptions.None);
 IMEIgiusto = a1[1].Replace("=</ArrayOfArrayOfKeyValueOfstringstring>", "");
 Debug.WriteLine("IMEI: "+IMEIgiusto);

我得到这个输出:

IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo

已解决

【问题讨论】:

  • 如果是 XML,为什么不使用 XML API?
  • @JonSkeet 它不是 xml
  • 在我看来它确实像 XML。您认为这不是 XML 的哪一方面?
  • 它是我从 IMEI = System.Text.Encoding.UTF8.GetString(objByte, 0, objByte.Length) 得到的回报;
  • 当然。这并不意味着它不是 XML……(你确定obj 在你获取它时还不是一个字符串吗?ObjectToByteArray 方法是什么?)

标签: c# string methods split windows-phone


【解决方案1】:

我会使用 XML API:

XElement element = XElement.Parse(text);
string value = element.Value;
byte[] bytes = Convert.FromBase64String(value);

【讨论】:

    【解决方案2】:

    我通过这种方式使用拆分和替换来剪切字符串:

     a1 = IMEI.Split(IMEIerrato, 2 ,StringSplitOptions.None);
     IMEIgiusto = a1[1].Replace("=</ArrayOfArrayOfKeyValueOfstringstring>", "");
     Debug.WriteLine("IMEI: "+IMEIgiusto);
    

    我得到这个输出:

    IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo
    

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 2016-06-13
      相关资源
      最近更新 更多