簡體   English   中英

雙引號不關閉 Java

[英]Double Quote not close Java

J 有 CSV 文件第一行是這樣的:

LOC;11000;"授權"有效";10;;

當我嘗試用 CSVReader 閱讀它時,我只有這個:

本地地址;11000

我知道問題出在雙引號上,我該怎么做才能刪除 CSV 上的所有雙引號?

我嘗試替換方法是 dosnt 工作。

我的代碼是:

while ((line = reader.readNext()) != null) {

    for(int i = 0; i<line.length; i++) {

        if (line[i].contains("\"")){

            line[i] = line[i].replace("\"", ""); // same result with replaceAll method
        }

        System.out.print(line[i]+" ");
    }
}

謝謝你。

正如 Brendan 所提到的,“ if (line[i].contains("""))){" 行是多余的。查找和替換方法無論如何都會掃描文本,您不需要執行兩次。

您的替換語句有效,我試過了,但這不是問題所在:

jshell> var text = "LOC;11000;\"Autorisation \"valide\";10;;";
text ==> "LOC;11000;\"Autorisation \"valide\";10;;"

jshell> text.contains("\"")
$2 ==> true

jshell> text.replace("\"","");
$3 ==> "LOC;11000;Autorisation valide;10;;"

請注意,該行不是列表/可迭代的,它是一個字符串,因此您可以在線替換它。

while ((line = reader.readNext()) != null) {
     line = line.replaceAll("[\"\\\\]","");  
     System.out.print(line);
}

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM