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

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?