TaroLee 2019-03-11 11:17 采纳率: 37.5%
浏览 2615
已采纳

spark(scala) 以空格进行分割,忽略引号内的空格

例如我有一行数据,我想要以空格进行分割数据,但是用双引号和 [ ] 括起来的数据不要用空格分割,请问如何实现,感谢。

  • 写回答

1条回答 默认 最新

  • weixin_39154142 2019-03-11 14:17
    关注

    class Program
    {
    static void Main(string[] args)
    {
    string strMsg = "sdg a[d124 df]sdfsd f\"s adf\"";

            string str1 = getAndRemoveBody("[", "]", ref strMsg,"{0}");
            string str2 = getAndRemoveBody("\"", "\"", ref strMsg,"{1}");
    
            string[] str = strMsg.Split(" ");
    
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i].Contains("{0}"))
                {
                    str[i] = str[i].Replace("{0}", str1);
                }
                if (str[i].Contains("{1}"))
                {
                    str[i] = str[i].Replace("{1}", str2);
                }
                Console.WriteLine(str[i]);
            }
    
            Console.Read();
        }
    
        private static string getAndRemoveBody(string strHeadTag, string strTailTag,ref string str,string holder)
        {
            string rt = "";
            int startp = str.IndexOf(strHeadTag);
            int endp = str.IndexOf(strTailTag,startp + 1);
            if (startp < endp && startp >= 0 && endp < str.Length)
            {
                rt = str.Substring(startp + strHeadTag.Length, endp - startp - strHeadTag.Length);
                str = str.Replace(rt, holder);
            }
            return rt;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?