我有一个名为条形码的 CSV 文件,我已成功将该文件导入到我的 SQLite 数据库中,但问题是数据按 CSV 文件中的内容保存。
我得到的数据:8.90103E+12,我想要的数据:8901030382253。
示例:
商品 - EAN_CODE
100047253 - 8.90103E+12
100047252 - 8.90103E+12
我有两列,Ean_code
中的数据未正确进入我的数据库。
我已经使用了修剪功能,但 o/p 保持不变。
我的代码:
if (exportDir.exists()) {
FileReader file = null;
try {
file = new FileReader(exportDir);
BufferedReader buffer = new BufferedReader(file);
String line = "";
int iteration = 0;
ArrayList<MasterDataModel2> arrayList_stock2 = new ArrayList<>();
while ((line = buffer.readLine()) != null) {
if (iteration == 0) {
iteration++;
continue;
}
//StringBuilder sb = new StringBuilder();
String[] str = line.split(",");
arrayList_stock2.add(new MasterDataModel2(str[0].replace("\"", ""), str[1].replace("\"", "")));
//arrayList_stock2.add(new MasterDataModel2(str[0],str[1]));
Log.d("insertTotal", "Msg:" + lastId);
}
Log.e("size",String.valueOf(arrayList_stock2.size()));
db.addAllMasterData2(arrayList_stock2);
} catch (FileNotFoundException e) {
e.printStackTrace();
//CallingImportantMethod.showToast(this, "File is not available");
} catch (IOException e) {
e.printStackTrace();
//CallingImportantMethod.showToast(this, "Something wents wrong");
}
}
最佳答案
下面的代码不正确。
arrayList_stock2.add(new MasterDataModel2(str[0].replace("\"", ""), str[1].replace("\"", "")));
\
是特殊转义字符,因此需要 \\
对其进行转义。即使与原始问题无关,建议您阅读 this清楚地了解 java 中反斜杠的用法。
回到问题,我猜你真的不需要调用str[].replace()
。如果我错了请纠正我。
arrayList_stock2.add(new MasterDataModel2(str[0].trim(), str[1].trim()));
我认为上面的代码段就足够了。
编辑:对于您的实际问题,您可以使用下面的内容。为了避免 null 问题,您可能还需要进行检查。
if(str[1] != null) {
Double eanCodeDouble = Double.parseDouble(str[1]);
NumberFormat nf = NumberFormat.getInstance();
String eanCodeString = nf.format(eanCodeDouble);
System.out.println(resultedString);
} else {
String eanCodeString = '';
}
if(str[0] == null) {
str[0] = '';
}
arrayList_stock2.add(new MasterDataModel2(str[0].trim(), eanCodeString));
关于java - 如何在 Android Studio 中从 CSV 文件导入时从 SQLite DB 中删除特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199431/