2011-09-23 23 views
7

में "\" "\\" के साथ "\" को कैसे बदलें, मैंने स्ट्रिंग को सरणी में तोड़ने की कोशिश की और \ को \\ के साथ प्रतिस्थापित करने की कोशिश की, लेकिन यह नहीं कर सका, मैंने स्ट्रिंग.रेप्लेस की कोशिश की। इस सब कुछ ("\","\\"); की तरह। मैं जेएनआई के लिए रास्ता प्रदान करना चाहता हूं और यह केवल इस तरह से पढ़ता है। क्या कोई इस पर मेरी मदद कर सकता है। धन्यवाद।जावा

उत्तर

22

इस मामले में String.replaceAll का उपयोग न करें - यह नियमित अभिव्यक्तियों के संदर्भ में निर्दिष्ट है, जिसका अर्थ है कि आपको और भी बचने की आवश्यकता होगी। यह ठीक किया जाना चाहिए:

String escaped = original.replace("\\", "\\\\"); 

ध्यान दें कि बैकस्लैश जावा स्ट्रिंग शाब्दिक में होने के कारण दोगुनी कर रहे हैं - तो वास्तविक तार यहां शामिल "एकल बैकस्लैश" और "डबल बैकस्लैश" कर रहे हैं - दोगुनी और चौगुनी नहीं।

replace सरल तारों पर काम करता है - कोई regexes शामिल नहीं है।

+7

अरे! फिर से स्कीट! –

+0

यह मेरे लिए इस तरह के चार स्लेश जोड़ता है \\\\ मेरे लिए –

+0

@ जेम्सस्रेसैकिस: यह कहना मुश्किल है कि आप इतनी छोटी जानकारी के साथ क्या कर रहे हैं। मेरा अनुमान है कि आप एक डीबगर में स्ट्रिंग को देख रहे हैं, जहां यह आपके लिए बच रहा है। –

1

मैं जेएनआई के लिए रास्ता प्रदान करना चाहता हूं और यह केवल इस तरह से पढ़ता है।

यह सही नहीं है। आपको केवल एक प्रोग्रामिंग भाषा में घोषित शाब्दिक तारों में डबल बैकस्लाश की आवश्यकता होती है। रनटाइम पर आपको यह प्रतिस्थापन कभी नहीं करना पड़ेगा। आपको पुनर्विचार करना होगा कि आप ऐसा क्यों कर रहे हैं।

2

आप replaceAll इस्तेमाल कर सकते हैं:

String escaped = original.replaceAll("\\\\", "\\\\\\\\"); 
+0

p_p मुझे लगता है कि क्यों जॉन स्कीट ने प्रतिस्थापित करने का उपयोग नहीं किया ... ओह जावा ... – yarbelk