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

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

报告相同问题?

悬赏问题

  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的