2015-06-08 6 views
6

में काम नहीं कर रहा है, मैंने '\' की घटना को प्रतिस्थापित करने के लिए निम्न कोड का उपयोग किया है, लेकिन यह काम नहीं कर रहा है।स्ट्रिंग प्रतिस्थापन फ़ंक्शन को एंड्रॉइड

msg="\uD83D\uDE0A"; 
msg=msg.replace("\\", "|"); 

मैंने Google में बहुत समय बिताया। लेकिन कोई समाधान नहीं मिला।

भी कोशिश की

msg="\uD83D\uDE0A"; 
msg=msg.replace("\", "|"); 
+5

'msg =" \ uD83D \ uDE0A "; वास्तव में कोई बैकस्लैश नहीं है। '\ U #### 'को एक [यूनिकोड वर्ण] में संकलित किया जाता है (http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#unicode) – khelwood

+0

या यह एक हंसते हुए स्माइली का यूनिकोड। लेकिन क्या सवाल में उल्लिखित करने के लिए कोई विकल्प है? –

+0

आप वास्तव में क्या करने की कोशिश कर रहे हैं - स्माइली को पाइप चरित्र के साथ प्रतिस्थापित करें, या कुछ और? –

उत्तर

4

msg स्ट्रिंग परिभाषित भी इस तरह की एक एस्केप वर्ण का उपयोग करना चाहिए:

msg="\\uD83D\\uDE0A"; 
msg=msg.replace("\\", "|"); 

कि कोड काम करेंगे और यह परिणाम होगा में: |uD83D|uDE0A

+0

मैं नहीं कर सकते इनपुट नियंत्रित। –

+1

क्या होगा अगर हम प्रश्न में उल्लिखित एक ही इनपुट के साथ करना चाहते हैं? –

+1

@JarishJose plz पढ़ें http://stackoverflow.com/questions/13700333/convert-escaped-unicode-character-back-to-actual-character –

0

आप तो एक यूनिकोड चरित्र के यूनिकोड पूर्णांक मान को दिखाना चाहते हैं, आप ऐसा कुछ कर सकते हैं:

String.format("\\u%04X", ch); 

(या "\\" के बजाय "|" का उपयोग करें यदि आप चाहें)।

आप स्ट्रिंग में प्रत्येक वर्ण के माध्यम से जा सकते हैं और इसे "|u####" जैसे शाब्दिक स्ट्रिंग में परिवर्तित कर सकते हैं यदि आप यही चाहते हैं।

0

जो मैं समझता हूं उससे, आप एक स्ट्रिंग का यूनिकोड प्रतिनिधित्व प्राप्त करना चाहते हैं। इसके लिए आप here से उत्तर का उपयोग कर सकते हैं।

private static String escapeNonAscii(String str) { 

    StringBuilder retStr = new StringBuilder(); 
    for(int i=0; i<str.length(); i++) { 
    int cp = Character.codePointAt(str, i); 
    int charCount = Character.charCount(cp); 
    if (charCount > 1) { 
     i += charCount - 1; // 2. 
     if (i >= str.length()) { 
     throw new IllegalArgumentException("truncated unexpectedly"); 
     } 
    } 

    if (cp < 128) { 
     retStr.appendCodePoint(cp); 
    } else { 
     retStr.append(String.format("\\u%x", cp)); 
    } 
    } 
    return retStr.toString(); 
} 

यह आपको एक स्ट्रिंग के रूप में यूनिकोड मान देगा जो आप चाहें तो बदल सकते हैं।

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