2012-05-17 25 views
5

'\' 'n' gibi char dizileri dönüştürmek için bir çözüm yazarken ('\ t', '\ r gibi tüm olası boşluk komutları için bir anahtar yazmadan "\ n" ',' \ n ', vb.)Beyaz boşluk dizisi Whitespace için

Bunu yapmak için bir şey mi, yoksa akıllıca bir hile mi var?

+2

: // commons.apache.org/lang/)'in [StringEscapeUtils] (http://commons.apache.org/lang/api-release/org/apache/commons/lang3/StringEscapeUtils.html). – McDowell

+0

Soruyu tam olarak anlamak zor. Biraz girdi ve beklenen çıktı sağlayabilir misiniz lütfen? – anubhava

+0

[Java'da bir Java dizesi değişmezini nasıl unescape] 'ın olası kopyası (http://stackoverflow.com/questions/3537706/howto-unescape-a-java-string-literal-in-java) –

cevap

3

Hayır, bir kez derlendiğinde, "\\n"'un "\n" afaik ile ilgisi yoktur. aşağıdaki gibi yaptığım bir şey öneririm:

Saf Java: Apache Commons StringEscapeUtils kullanma

String input = "\\n hello \\t world \\r"; 

String from = "ntrf"; 
String to = "\n\t\r\f"; 
Matcher m = Pattern.compile("\\\\(["+from+"])").matcher(input); 
StringBuffer sb = new StringBuffer(); 
while (m.find()) 
    m.appendReplacement(sb, "" + to.charAt(from.indexOf(m.group(1)))); 
m.appendTail(sb); 

System.out.println(sb.toString()); 

:

import org.apache.commons.lang3.StringEscapeUtils; 

... 

System.out.println(StringEscapeUtils.unescapeJava(input)); 
Bunu [Apache Commons Lang] (http kullanabilirsiniz
İlgili konular