日期:2014-05-17  浏览次数:20928 次

字符串转换
有字符串

"{'sss','55','df',44,'tt',99.9,''}"

如何高效获取字符串"sss"、"55"、"df"、"tt"、""以及数字44、99.9
字符串 转换

------解决方案--------------------
var str = "{'sss','55','df',44,'tt',99.9,''}";
var arr = str.Trim('{', '}').Split(',').Select(s => s.Trim('\'')).ToArray();

------解决方案--------------------
引用:
Quote: 引用:

var str = "{'sss','55','df',44,'tt',99.9,''}";
var arr = str.Trim('{', '}').Split(',').Select(s => s.Trim('\'')).ToArray();


这不是C#语句吧?


那你以为这是什么语句呢?
------解决方案--------------------
我猜你没加引用
using System.Linq;
------解决方案--------------------
反射,2L+1。。
------解决方案--------------------

            string str = "{'sss','55','df',44,'tt',99.9,''}";
            string[] arr = str.Trim('{', '}').Split(',');
            char[] charArray={'\''};
            for (int i = 0; i < arr.Length;i++ )
            {
                arr[i] = arr[i].Trim(charArray);
            }

这应该可以吧~你的.net也太老了
------解决方案--------------------
话说,这个2.0好像是支持正则表达式的,你可以试试用正则表达式
用两次正则将字符和数字筛选出来~
数字:\d{2}(\.\d+)*
字符:\S[a-zA-Z]{2,3}
------解决方案--------------------
放到字符串里就不分什么字符串和数字了,都是string
------解决方案--------------------
这个么,正则表达式比较好,因为不必考虑 framework 的版本问题:

int i = 1;
foreach (Match match in Regex.Matches("{77, 'sss', '55', 'df', 44, 'tt', 99.9, ''}", @"\b[a-z0-9.]+\b
------解决方案--------------------
(?<=')(?=')
------解决方案--------------------
(?<="")(?="")"))
{
    Console.WriteLine("{0}: <{1}>", i++.ToString(), match.Value);
}
Console.ReadKey();