2012-01-05 10 views
7

मैं एक स्ट्रिंग को परिवर्तित करने का एक तरीका ढूंढ रहा हूं जिसमें प्रतिनिधित्व चरित्र में एक चरित्र भागने अनुक्रम शामिल है।मैं एक स्ट्रिंग को एक अक्षर में एक चरित्र से बचने वाले अनुक्रम को कैसे परिवर्तित कर सकता हूं?

तो, उदाहरण के लिए, मैं स्ट्रिंग \" (जिसमें दो अक्षर, बैकस्लैश और डबल-कोट) दो " में पार्स करना चाहते हैं। तो, एक char में वर्णों की एक सरणी।

तो कुछ ऐसा है जो इस और इसके तरह कुछ कर सकता विपरीत:

package test; 
public class Test { 
    private static char parseChar(String string) { 
     char c = 0; 
     if ("\\n".equals(string)) { 
      c = '\n'; 
     }else if ("\\t".equals(string)) { 
      c = '\t'; 
     }else if ("\\r".equals(string)) { 
      c = '\r'; 
     }else if ("\\f".equals(string)) { 
      c = '\f'; 
     }else if ("\\b".equals(string)) { 
      c = '\b'; 
     }else if ("\\\'".equals(string)) { 
      c = '\''; 
     }else if ("\\\"".equals(string)) { 
      c = '\"'; 
     }else if ("\\\\".equals(string)) { 
      c = '\\'; 
     } 
     return c; 
    } 
    public static void main(String[] args) { 
     for (String arg : args) { 
      System.out.println(arg + " : " + (int)parseChar(arg) + " : " + parseChar(arg) + ";"); 
     } 
    } 
} 

मैं विश्वास नहीं कर सकता java.lang या अन्य में कुछ भी नहीं है कि मुझे इस वजह के लिए अच्छा (शायद देशी) कोड के साथ प्रदान कर सकते हैं नहीं है मुझे लगता है कि उपरोक्त कोड अधूरा हो सकता है और प्रत्येक समस्याग्रस्त (बचने योग्य) चरित्र को पार्स नहीं कर सकता है, क्योंकि मैं एक नोब हूं।

String st = "\""; 
char ch = st.charAt(0); 

ch उत्पादन: मैं एक उपकरण है जो स्ट्रिंग निर्माता के रूप में एक ही बात कर सकते हैं चाहता हूँ ";

यह पढ़ के लिए धन्यवाद, मैं अगर माफी नहीं स्पष्ट कर रहा हूँ मैं लूंगा । नियमित रूप से और सही जांच लें कि क्या पूछा

पुनश्च:

जब मैं ऊपर कोड चलाएँ:

जावा-क्लासपाथ ~/वर्कस्पेस/मैक्रोआरकॉर्डर/बिन/टेस्ट। टेस्ट \\ n \\ t \\ f \\ r \\ b \\\ '\\\ "\\\\;

... यह StringEscapeUtils साथ आउटपुट

\n : 10 : 
; 
\t : 9 : ; 
\f : 12 : 
      ; 
;r : 13 : 
\b : 8 :; 
\' : 39 : '; 
\" : 34 : "; 
\\ : 92 : \; 

लेकिन ग्रहण में, उत्पादन एक ही मानकों के साथ पूरी तरह से अलग है विशेष रूप से "बहुत गंदा है।

+0

संभावित डुप्लिकेट [स्ट्रिंग से जावा में चार में कनवर्ट/पार्स कैसे करें?] (http://stackoverflow.com/questions/7853502/how-to-convert-parse- से-स्ट्रिंग -to-char-in-java) –

+0

मैं उस प्रश्न में एक प्रश्न कैसे जोड़ सकता हूं? हर जवाब वही था और सवाल का जवाब नहीं दे रहा था ... मुझे लगता है कि यह अधिक विशिष्ट है हालांकि यह सच है कि वह मेरे जैसा ही चाहता था। मैं भी अपने प्रश्न का प्रयास और संपादन करूंगा। – sinekonata

+0

आप नहीं कर सकते। आप जवाबों को कैसा महसूस करते हैं जो आपकी मदद नहीं करते हैं? निश्चित रूप से ऐसा लगता है। –

उत्तर

13

अपाचे बचाव के लिए कॉमन्स, आप unescapeJava विधि चाहते हैं मुझे लगता है: http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html#unescapeJava(java.lang.String)

+0

मुझे लगता है यह वही है जो मैं चाहता हूं लेकिन यह एक अच्छी शुरुआत है क्योंकि मैं 2 तरीके का उपयोग करना चाहता था। – sinekonata

+0

उसी वर्ग पर बचने के लिए जावा विधि का प्रयास करें! यह दोनों तरीकों से करता है, और अन्य विधियां भी हैं (जैसे जावास्क्रिप्ट, एचटीएमएल इत्यादि) यदि आप विभिन्न प्रकार के भागने की इच्छा रखते हैं। –

+0

ओह क्षमा करें मैंने नहीं देखा कि वहां से बचने और अनदेखा बहुत धन्यवाद, मैंने इस तरह के वर्ग – sinekonata

संबंधित मुद्दे

 संबंधित मुद्दे