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

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;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器