如何取一个字符串的一部分

时间:2014-02-17 09:45:52

标签: c# string methods split windows-phone

我怎么能参与这个字符串的一部分:

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;

我通过这种方式使用Split和Replace来剪切字符串:

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

我得到了这个输出:

IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo

分辨

2 个答案:

答案 0 :(得分:6)

我使用的是XML API:

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

答案 1 :(得分:0)

我通过这种方式使用Split和Replace来剪切字符串:

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

我得到了这个输出:

IMEI: 0RuHA6OkPMP7myQPAR4ZDMoB8mo