2010-03-09 18 views
14

मैं जावा में एक स्रोत फ़ाइल पढ़ रहा हूं, लेकिन जब मैं इसे प्रिंट करता हूं (sysout), बच निकले वर्ण अब बच निकले नहीं हैं। मैं Java में स्ट्रिंग में \n और \t जैसे वर्णों से कैसे बच सकता हूं?मैं जावा में एक स्ट्रिंग से कैसे बचूं?

+0

क्या आप पढ़ने और आउटपुट के लिए आपको वर्तमान कोड पोस्ट कर सकते हैं? – helios

+0

आप स्रोत फ़ाइल में कैसे पढ़ रहे हैं? और आप उन्हें वास्तव में कैसे प्रिंट कर रहे हैं? आपके विवरण से यह मेरे लिए स्पष्ट नहीं है कि भागने के दृश्य उन भागने वाले पात्रों में परिवर्तित हो रहे हैं, जिनका वे प्रतिनिधित्व करते हैं। –

उत्तर

17

आप अच्छी तरह से ज्ञात अपाचे कॉमन्स से StringEscapeUtils पुस्तकालय का उपयोग करना चाहिए के लिए अच्छा है। आप पाएंगे कि अपाचे कॉमन्स में कई अन्य प्रसाद हैं जो जावा विकास में आपके पास अन्य समस्याओं के लिए उपयोगी हो सकते हैं, ताकि आप पहिया को फिर से न चलाएं।

विशिष्ट कॉल जिसे आप चाहते हैं "जावा एस्केपिंग" के साथ करना है; एपीआई कॉल StringEscapeUtils.escapeJava() है। उस लाइब्रेरी में भी कई अन्य भागने वाली सुविधाएं हैं।

4

का उपयोग करना:

\\n और \\t

कुछ एक बैकस्लैश (\) से पहले वर्ण एक एस्केप अनुक्रम फार्म और संकलक करने के लिए विशेष अर्थ नहीं होता। तो आपके मामले में \n और \t को विशेष (न्यूलाइन और टैब क्रमशः) माना जाता है। इसलिए हमें n और t को शाब्दिक रूप से इलाज करने के लिए बैकस्लैश से बचने की आवश्यकता है।

+0

जिस फ़ाइल में मैं पढ़ रहा हूं वह '\ n' है, और मैं प्रोग्रामेटिक रूप से इसे \\\ \ 0 n3 – Marius

5

को देखते हुए String s,

s = s.replace("\\", "\\\\"); 

\\ के साथ सभी \ से बदलता है।

+3

में परिवर्तित करना चाहता हूं यह गलत है क्योंकि \ n को एक वर्ण के रूप में माना जाता है, इसलिए इसे प्रतिस्थापित नहीं किया जाएगा \\ –

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