Hata değil. Tam olarak amaçlandığı gibi çalışır. documentation devletler: değeri çift tırnak içine ve virgül, yeni satır veya çift tırnak içeriyorsa
sonra tırnak kaldırılır.
çevreleyen çift tırnak kaldırılır aşağıdaki durumlarda gelir
:
aşağıdaki sizin durumunuzda Ancak
StringEscapeUtils.unescapeCsv("\"Call \n us!\""); // -> Call \n us!
StringEscapeUtils.unescapeCsv("\"Call, us!\""); // -> Call, us!
StringEscapeUtils.unescapeCsv("\"Call \" us!\""); // -> Call " us!
doğrudur: değer çift tırnak içine alınmamış
ise veya virgül, satırsonu veya çift tırnak işareti içermez ve bu durumda String değeri değiştirilmez. çevreleyen çift tırnak demektir
kaldırılmaz:
StringEscapeUtils.unescapeCsv("\"Call us!\""); // -> "Call us!"
yerine String.split()
güvenerek ve StringEscapeUtils.unescapeCsv()
Eğer Apache Commons CSV gibi uygun CSV ayrıştırıcı kullanmalıdır.
İki teklif satırınız arasındaki tek fark, ek iki satırın yanında (birinci ve üçüncü gereksiz), virgül eklemiş olmanızdır. Her karakteri kontrol ettim. unescapeCsv ("\" Bizi arayın! \ ""); // -> "Bizi arayın!" unescapeCsv ("\" Arayın, bize! \ ""); // -> Arayın, bizi! – user1122069
Ayrıca, Commons CSV önerisi için teşekkürler. Bunun gibi bir şey kullanmalıydım, ama yerine kullanmam gerektiğine karar verdim. ("\" "," ") Değiştirin. Benim özel kullanım durumumla değiştirdiğim için (" '"," "). – user1122069
Evet, tek fark eklenen virgül. ** Bütün nokta budur. ** 'unescapeCsv()' beklediğiniz gibi çalışmadı. Ben de size açıkladım ** neden ** işe yaramadı. ** Çünkü sadece çalışırsa çalışır Bir virgül ** (veya satırsonu veya çift tırnak) –