簡體   English   中英

在openCSV中使用轉義字符

[英]Using Escape characters in openCSV

我正在使用默認的構造函數和默認的轉義字符反斜杠。 因此CSV格式類似於"value1","value2","value3","value4"

從CSV文件Windows XP OS中讀取值。

現在的問題是,當值中的雙引號像這樣的"aa"," I am "fine", what about u?", "232",我不知道如何轉義雙引號。

有人可以幫我嗎?

用雙引號引起來

    CSVParser csv = new CSVParser()

    String[] result = csv.parseLine('"aa","I am ""fine"", what about u?", "232"')

    assert result[0] == 'aa'
    assert result[1] == 'I am "fine", what about u?'
    assert result[2] == '232'

更新

這個答案是從以下常規測試文件OpenCSVTest.groovy中提取的

import groovy.util.GroovyTestCase
import au.com.bytecode.opencsv.CSVReader
import au.com.bytecode.opencsv.CSVParser

@Grapes([
    @Grab(group='net.sf.opencsv', module='opencsv', version='2.3')
])

class OpenCSVTest extends GroovyTestCase {

    void testParseQuote() {
        CSVParser csv = new CSVParser()

        String[] result = csv.parseLine('"aa","I am ""fine"", what about u?", "232"')

        assert result[0] == 'aa'
        assert result[1] == 'I am "fine", what about u?'
        assert result[2] == '232'
    }
}

運行如下:

$ groovy OpenCSVTest
.
Time: 0.009

OK (1 test)

在您的問題中,您告訴您正在使用默認的轉義字符,即反斜杠。 因此,您必須使用反斜杠...像: "aa"," I am \\"fine\\", what about u?", "232"

從這樣的代碼進行測試:

CSVParser csvParser = new CSVParser();
String[] parseLine = csvParser.parseLine("\"aa\",\" I am \"\"fine\"\", what about u?\", \"232\"");

暫無
暫無

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

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