txt文件中有一行
1,sam,6.72,"ha,,,,""棋子""","Hello"
要求输出结果:
1 sam 6.72 ha,,,,"棋子" Hello

解决方案 »

  1.   

    使用JAVASCRIPT 将逗号转换成空格
    "1,sam,6.72,"ha,,,,""棋子""","Hello"".replace(/\s+/g,' ')不晓得是不是你要的,哈哈,试试吧
      

  2.   

    切,走开。
    问题:字符串A="123  456  789" 中间的空格不一定是半角(或多个空格) 怎样讲A变成B="123,456,789
    答案:"123  456  789".replace(/\s+/g,',')
      

  3.   

    没看出你所说的规律
      "ha,,,,""棋子"""
    是怎么变成
      ha,,,,"棋子"
      

  4.   

    用split()截取的用法自己上网搜,
      

  5.   

    用正则表达式,但是过程有点复杂:
    1、先把两个双引号替换为一个特殊字符,此处是&
    2、然后把双引号内的逗号也替换为一个特殊字符,此处为$
    3、再依次把所有逗号替换为空格,把引号替换为空字符串
    4、最后依次把1、2步处理的内容还原这里在替换的时候使用到了委托。在使用之前需要引用正则表达式的名字空间
    using System.Text.RegularExpressions;因其中的逗号有中文逗号,我在程序中做了修改:static void Main(string[] args)
            {
                 string testString="1,sam,6.72,\"ha,,,,\"\"棋子\"\"\",\"Hello\"";
                 Console.WriteLine(testString);
                string first=Regex.Replace(testString, "[^\"](\"\")",new MatchEvaluator(Replace1));
                Console.WriteLine(first);            string second = Regex.Replace(first, "(\"[^\"]*\")", new MatchEvaluator(Replace2));
                Console.WriteLine(second.Replace(",", " ").Replace("\"", "").Replace("&", "\"").Replace("$", ","));
            }
            public static string Replace1(Match a)
            {
                
                return a.Value.Replace("\"\"","&");
            }
            public static string Replace2(Match a)
            {            return a.Value.Replace(",", "$");
            }运行结果为:
    1,sam,6.72,"ha,,,,""棋子""","Hello"
    1,sam,6.72,"ha,,,,&棋子&","Hello"
    1 sam 6.72 ha,,,,"棋子" Hello
    请按任意键继续. . .
      

  6.   

    笨方法如下        // 主方法
            static string GetNewString(string str)
            {
                const char replaceChar = '&'; // 将引号内的逗号替换成其他字符             bool has = false;
                string sss = "";
                foreach (char c in str)
                {
                    switch (c)
                    {
                        case ',':
                        case ',':
                            sss += has ? replaceChar : c;
                            break;
                        case '"':
                            has = !has;
                            sss += c;
                            break;
                        default:
                            sss += c;
                            break;
                    }
                }
                string[] arr = sss.Split(new char[] { ',', ',' });
                List<string> list = new List<string>();
                foreach (string s in arr)
                {
                    string ss = s;
                    if (ss.Length >= 2 && ss[0] == '"' && ss[ss.Length - 1] == '"')
                    {
                        ss = ss.Remove(0, 1);
                        ss = ss.Remove(ss.Length - 1, 1);
                    }
                    list.Add(RemoveQuotes(ss).Replace(replaceChar, ','));
                }            return String.Join(" ", list.ToArray());
            }        // 递归剥离外层引号,只保留最里层
            static string RemoveQuotes(string ss)
            {
                if (ss.Split('"').Length > 3)
                {
                    ss = ss.Remove(ss.IndexOf('"'), 1);
                    ss = ss.Remove(ss.LastIndexOf('"'), 1);
                    return RemoveQuotes(ss);
                }
                else
                {
                    return ss;
                }
            }
      

  7.   

    string s = "1,sam,6.72,\"ha,,,,\"\"棋子\"\"\",\"Hello\"";
    s = Regex.Replace(s, @"(""([^""]+|""{2})*""|[^,,]+)[,,]?", m => Regex.Replace(m.Value + " ", @"""("")|("")|[,,]( $)", "$1$3"));
      

  8.   

    应该是个逗号分隔符文件(csv),可以查一下文件格式,规则很简单
      

  9.   

    这个肯定要多做几次的逻辑处理。一个简单的处理恐怕不能完成。replace或者split来做。具体不实验了,脑子现在有点木。
      

  10.   

    试下看看
                string str = @"1,sam,6.72,""ha,,,,""""棋子"""""",""Hello""";
                string result = Regex.Replace(str, @"(?<=[,,])""|""(?=""|$)", "");
                Console.WriteLine(result);
      

  11.   

    我很奇怪,你txt文件是程序写入的吗,如果是,写入规则是你定的,用符号替换就行了呗
    如果是手工输入的,那问题就大了
    我只是说自己的想法