2012-05-17 14 views
5

पर व्हाइटस्पेस चार अनुक्रम मैं सभी संभावित व्हाइटस्पेस कमांड जैसे '' \ t ',' \ r 'के लिए एक स्विच लिखने के बिना' \ '' n 'to' \ n 'जैसे चार अनुक्रमों को परिवर्तित करने के लिए एक समाधान की तलाश कर रहा हूं। ',' \ n ', आदि)व्हाइटस्पेस

क्या ऐसा कुछ करने के लिए या एक चालाक चाल है?

+2

आप इस्तेमाल कर सकते हैं [अपाचे कॉमन्स Lang] (http: // commons.apache.org/lang/)'s [स्ट्रिंगएस्केप उपयोग] (http://commons.apache.org/lang/api-release/org/apache/commons/lang3/StringEscapeUtils.html)। – McDowell

+0

प्रश्न को पूरी तरह समझने में कठिनाई। क्या आप कुछ इनपुट और अपेक्षित आउटपुट कृपया प्रदान कर सकते हैं? – anubhava

+0

संभावित डुप्लिकेट [जावा में जावा स्ट्रिंग अक्षर को कैसे अनदेखा करता है] (http://stackoverflow.com/questions/3537706/howto-unescape-a-java-string-literal-in-java) –

उत्तर

3

नहीं, एक बार संकलित, "\\n""\n" afaik से कुछ लेना देना नहीं है। इस प्रकार मैं कुछ कर रही सुझाव है:

शुद्ध जावा:

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()); 

अपाचे कॉमन्स StringEscapeUtils का उपयोग करना:

import org.apache.commons.lang3.StringEscapeUtils; 

... 

System.out.println(StringEscapeUtils.unescapeJava(input)); 
संबंधित मुद्दे