zoukankan      html  css  js  c++  java
  • 读取CSV数据的集中方式(Java和Oracle)

    CSV数据是一种类似于execl的数据格式,当CSV格式转化为文本格式时,数据会自动使用逗号(,)隔开,但是如果CSV单元格中同时含有逗号,文本格式会用加 “” 的方式予以区分。

    在我们处理只有逗号的文本时,比较简单。当我们处理文本中含有 “” 的逗号时,容易和文本自动添加的逗号混淆,比较困难处理,因此要借助正则表达式来进行处理区分。

    今天对于读取CSV数据的方式做了深入的调查,特在此做一下总结。

    目前本人接触CSV的读取方式可以分为两种,一种为JAVA代码的方式,一种为Oracle的读取方式

    1.JAVA代码的读取方式一般使用split方法

    a.文本中只有逗号

    例:"123","Jack jona","Computer science"

    则直接可以使用

    String[] strArr = str.trim().split(",",-1);

    进行分割处理。

    b.如果文本中在 “” 中含有逗号

    例:"234", "Lee Jack", "Fort myers, FL"

    则需要借助正则表达式来进行区分

    String[] strArr = str.trim().split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)",-1); //双引号内的逗号不分割 

    2,Oracle的读取方式

    由于Oracle的正则表达式和JAVA中的正则表达式不同,java中的正则表达式支持正向预测,Oracle的正则中只是支持正声明。

    简单的来讲,java中的正则表达式和split结合可以读取符合一段正则规则的字符串(例如 规则为-> ," ")

    而Oracle中的拆分字符串的方法为Regexp_Substr函数,在这里需要说明的是Oracle的截取方式为逐个匹配方式,也就是Oracle会遍历字符串的中的每一个字符 ,像是砍断一样将字符串砍断截取。

    所以目前来说,Oracle的处理csv的方式并没有java方便。

    此为个人见解,如果疑问可以加我讨论。810632986

  • 相关阅读:
    笔试面试过程中常考的简单题目
    MySQL字符串函数:字符串截取总结
    克隆到新的datatale中
    C#后台调用js代码和其他页面(弹窗)
    asp.net中如何使一个button先执行后台的Click再执行javascript的onclick?
    table按某列进行分组
    table里有两个input,选中只选中一个
    ts和js的区别
    es6-es7-es10
    ECMAScript 6(简称:ES6) 和 JavaScript 到底是什么关系?
  • 原文地址:https://www.cnblogs.com/trylearnIT/p/8028100.html
Copyright © 2011-2022 走看看