public class CSVTeast {
public static void main(String[] args) {
CSVTeast obj = new CSVTeast();
obj.run();
}
public void run() {
String csvFile = "D:\\text.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = "~";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] csvRead = line.split(cvsSplitBy);
System.out.println("Value [date= " + csvRead[5]
+ " , name=" + csvRead[9]+"]");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
}
}
输出为
Value [date= "POLICY_CHANGE_EFFECTIVE_DATE" , name="AGENCY_NAME"]
Value [date= "2014-04-01" , name="USI INSURANCE SERVICES]--this value stated with double qoutes but not end with same .
预期输出
Value [date= POLICY_CHANGE_EFFECTIVE_DATE , name=AGENCY_NAME]
Value [date= 2014-04-01 , name=USI INSURANCE SERVICES]
如果Qoutemark位于每个CSV行的开头,则可以执行以下操作:
csvRead[5].substring(1, csvRead[5].length()-1)
这将删除该特定字符串的第一个和最后一个字符。然后,您需要将结果存储在某处或打印出来。
有一个很好的Java CSV阅读器,可以帮你解决这个问题,http://opencsv.sourceforge.net/
如果您的项目是maven,那么它有一个maven包,否则您可以在那里下载JAR。
您可以尝试通过字符串传递值。replace()方法。
所以你的代码是:
public class CSVTeast {
public static void main(String[] args) {
CSVTeast obj = new CSVTeast();
obj.run();
}
public void run() {
String csvFile = "D:\\text.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = "~";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
String[] csvRead = line.split(cvsSplitBy);
System.out.println("Value [date= " + csvRead[5].replace("\"","")
+ " , name=" + csvRead[9].replace("\"","")+"]");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
}
}
当我使用Spark DataSet加载csv文件时。我更喜欢清楚地指定模式。但是我发现有几行不符合我的模式。一列应该是双精度的,但有些行是非数值。是否可以轻松地从DataSet中过滤所有不符合我的模式的行? f、 csv: 我更喜欢“a”可以很容易地从我的数据集中过滤出来。谢谢!
我想从字符串中删除双引号中的逗号/逗号。 即以下字符串 应输出: 我试过这个正则表达式: 但是如果双引号中有双引号,它就失败了。 另一个例子: 输出:
我的本地文件夹中有一个csv文件。我想阅读它,删除一列,并替换同一文件夹中的文件。 实际样本数据: 样本数据中的预期数据: 在这种情况下,我想删除列LASTNAME。在Java中可以有效地完成吗?
问题内容: 我想删除我的json_encode中的双引号,即我的代码: 我的结果是: 我也想删除“ id_posiciones”和“ device_version”的双引号。 我该怎么做的结果是: 问题答案: 如果最后在您的正则表达式中添加下划线,它将执行此操作。 我认为那正是preg_replace的目的。
我对SqlAlchemy和Firebird DB是新手。 我可以直接使用DBeaver创建一个表: 但如果我尝试使用pyndas sqlalchemy执行同样的操作,我会得到一个错误: 问题是由引号
问题内容: 我正在尝试使用pandas创建一个,但是当我将数据导出到它时,我得到了一个额外的列 因此,我的结果是: 但是,预期结果是: 问题答案: 您所看到的是索引列。刚刚设置: