2016-04-04 67 views
0

"StringEscapeUtils.unescapeCsv" tanımı, çift tırnak işaretini kaldırdığını, ancak benim durumumda hiçbir şey yapmadığını söylüyor. Bunu inanmazsanızCommons lang StringEscapeUtils.unescapeCsv, tırnak işaretlerini kaldırmaz

ayıklayıcı ekranına bakın

String value = StringEscapeUtils.unescapeCsv(a[1] ); 

("Bir 1 Değeri = "\" "Bize \ Çağrı" ve elde edilen değerdir "\" \ bizi arayın") . Bu sadece bir hata mı? enter image description here

cevap

-1

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.

+0

İ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

+0

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

+0

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) –