qq_37257738
TaroLee
采纳率37.5%
2019-03-11 11:17

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

5
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • weixin_39154142 weixin_39154142 2年前

    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;
        }
    }
    
    点赞 评论 复制链接分享

相关推荐