Java split()OpenCSV

编程入门 行业动态 更新时间:2024-10-27 19:28:03
本文介绍了Java split()OpenCSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

大家好, 我正在将项目从C#转换为Java。我必须分析一些 CSV文件。在C#中一切正常,但在Java中我无法使其工作正常 方式。 例如,有两个文件中的行: US,Dimanco,Inc,001 US,ClassB ,002 我正在尝试使用逗号作为分隔符将这些行拆分为单独的项目。 这是我的代码:

import java.io.IOException; import java.io.StringReader; import com.opencsv.CSVReader; public static void main( String [] args){ // 逗号分隔字符串的测试 字符串 [] c1 = null; String [] c2 = null; 字符串 s1 = \US \,\Dimanco,Inc \,\001 \; 字符串 s2 = \US \,\Class \B \\,\002 \; c1 = s1.split( ,, - 1 ); c2 = s2.split( ,, - 1 ); System.out.println(s1); System.out.println(s2); System.out.println( c1.length = + c1 。长度); printArray(c1); System.out.println( c2.length = + c2.length); printArray(c2); CSVReader reader1 = new CSVReader( new StringReader(s1 )); String [] tokens1 = null; 尝试 { while ((tokens1 = reader1.readNext())! = null){ } } catch (IOException e){ e.printStackTrace( ); } System.out.println( tokens1.length = + tokens1.length); printArray(tokens1); CSVReader reader2 = new CSVReader( new StringReader(s2)); String [] tokens2 = null; 尝试 { while ((tokens2 = reader2.readNext())! = null){ } } catch (IOException e){ e.printStackTrace( ); } System.out.println( tokens2.length = + tokens2.length); printArray(tokens2); } 静态 void printArray( String [] arr){ String out = new String (); for ( int i = 0; i< arr.length; i ++){ out + = arr [i] + < - >; } System.out.println(out); }

首先我尝试使用常见的split()函数。其结果是: US,Dimanco,Inc,001 US,ClassB,002 c1.length = 4 US< - >Dimanco< - > Inc< - > 001< - > c2.length = 3 US< - > 类B< - > 002< - > 第一行拆分为4项,第二行拆分为3.显然 拆分()不会忽略双引号内的逗号。我想将每一行分成 分为3个项目。 其次我尝试OpenCSV这个结果: 线程main中的异常java.lang.NoClassDefFoundError:org / apache / commons / lang3 / StringUtils at com.opencsv.CSVParser.isAllWhiteSpace(CSVParser。 java:543) at com.opencsv.CSVParser.parseLine(CSVParser.java:372) at com.opencsv.CSVParser.parseLineMulti(CSVParser.java:299) at com.opencsv.CSVReader.readNext(CSVReader.java:276) at PortiaMoxy.StringSplitTest.main(StringSplitTest.java:43) 引起:java.lang.ClassNotFoundException:org.apachemons.lang3.StringUtils java.URLClassLoader $ 1.run(未知来源) at java.URLClassLoader $ 1.run(未知来源) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(Unknown)来源) at java.lang.ClassLoader.loadClass(Unknown Sourc e) at sun.misc.Launcher $ AppClassLoader.loadClass(未知来源) at java.lang.ClassLoader.loadClass(Unknown Source) ... 5更多 有谁知道我错在哪里?

解决方案

1.run(Unknown来源) 在java.URLClassLoader

1.run(未知来源) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader。 loadClass(Unknown Source) at sun.misc.Launcher

AppClassLoader.loadClass(Unknown Source) at java.lang。 ClassLoader.loadClass(未知来源) ... 5更多 有谁知道我在哪里错?

Hi guys, I'm converting a project from C# to Java. I have to analyze some CSV files. Everything works fine in C#, but in Java I can't make it work the right way. For example, there are two lines in the file: "US", "Dimanco, Inc", "001" "US", "Class "B"", "002" I'm trying to split these lines into separate items using comma as a separator. Here's my code:

import java.io.IOException; import java.io.StringReader; import com.opencsv.CSVReader; public static void main(String[] args) { // test of comma separated strings String[] c1 = null; String[] c2 = null; String s1 = "\"US\",\"Dimanco, Inc\", \"001\""; String s2 = "\"US\", \"Class\"B\"\", \"002\""; c1 = s1.split(",", -1); c2 = s2.split(",", -1); System.out.println(s1); System.out.println(s2); System.out.println("c1.length = " + c1.length); printArray(c1); System.out.println("c2.length = " + c2.length); printArray(c2); CSVReader reader1 = new CSVReader(new StringReader(s1)); String[] tokens1 = null; try { while((tokens1 = reader1.readNext())!=null) { } } catch (IOException e) { e.printStackTrace(); } System.out.println("tokens1.length = " + tokens1.length); printArray(tokens1); CSVReader reader2 = new CSVReader(new StringReader(s2)); String[] tokens2 = null; try { while((tokens2 = reader2.readNext())!=null) { } } catch (IOException e) { e.printStackTrace(); } System.out.println("tokens2.length = " + tokens2.length); printArray(tokens2); } static void printArray(String[] arr) { String out = new String() ; for(int i=0; i< arr.length; i++) { out += arr[i] + " <-->"; } System.out.println(out); }

First I try to use common split() function. The result is: "US","Dimanco, Inc", "001" "US", "Class"B"", "002" c1.length = 4 "US" <-->"Dimanco <--> Inc" <--> "001" <--> c2.length = 3 "US" <--> "Class"B"" <--> "002" <--> The first line split into 4 items and the second line split into 3. Obviously split() does not ignore comma inside double quotes. I'd like each line to split into 3 items. Second I try OpenCSV with this result: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils at com.opencsv.CSVParser.isAllWhiteSpace(CSVParser.java:543) at com.opencsv.CSVParser.parseLine(CSVParser.java:372) at com.opencsv.CSVParser.parseLineMulti(CSVParser.java:299) at com.opencsv.CSVReader.readNext(CSVReader.java:276) at PortiaMoxy.StringSplitTest.main(StringSplitTest.java:43) Caused by: java.lang.ClassNotFoundException: org.apachemons.lang3.StringUtils at java.URLClassLoader$1.run(Unknown Source) at java.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 5 more Does anyone know where I am wrong?

解决方案

1.run(Unknown Source) at java.URLClassLoader

1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher

AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 5 more Does anyone know where I am wrong?

更多推荐

Java split()OpenCSV

本文发布于:2023-05-25 10:50:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/226564.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Java   split   OpenCSV

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!