/ / चर के साथ यूनिकोड एस्केप सीक्वेंस का उपयोग कैसे करें? - जावा, यूनिकोड, कंपाइलर-एरर्स, यूनिकोड-एस्केप

चर के साथ यूनिकोड भागने अनुक्रम का उपयोग कैसे करें? - जावा, यूनिकोड, कंपाइलर-त्रुटियां, यूनिकोड-एस्केप

यह वह कोड है जिसे मुझे वर्तमान में एक तत्कालीन b तब c और इतने पर लूप (समय की स्कैन की गई संख्या) में लावा का उपयोग करना है:

public String toString()
{
String answers = "";
int numChoices = choices.length;
char letter;
String result;
int letterNum = 0061;
while (numChoices > 0)
{
letter = "u" + letterNum;
result  = letter + ") " + choices[choices.length-numChoices] + "n";
answers += result;
numChoices --;
letterNum ++;
}

return question + "n" + answers;
}

मुझे लगा कि यूनिकोड एस्केप सीक्वेंस मेरा सबसे अच्छा विकल्प होगा, लेकिन यह उस तरह से काम नहीं करता जैसा मैंने करने की कोशिश की थी, इसलिए मैं स्पष्ट रूप से कुछ गलत कर रहा हूं। मैं यह कैसे तय करुं?

मुझे जो त्रुटि मिल रही है वह है:

MultChoice.java:40: illegal unicode escape
letter = "u" + letterNum;

उत्तर:

उत्तर № 1 के लिए 1

यूनिकोड एस्केप को जेवैक द्वारा संसाधित किया जाता है, बहुत संकलन में, पार्सिंग से पहले। कंपाइलर कभी भी यूनिकोड से बचता नहीं दिखता है, केवल कोड पॉइंट। इसलिए आप "रनटाइम पर उनका उपयोग नहीं कर सकते। इसके बजाय, यह प्रयास करें:

public String toString()
{
String answers = "";
int numChoices = choices.length;
char letter = "a";
String result;
while (numChoices > 0)
{
result  = "" + letter + ") " + choices[choices.length-numChoices] + "n";
answers += result;
numChoices --;
letter ++;
}

return question + "n" + answers;
}

char केवल एक अहस्ताक्षरित 16-बिट पूर्णांक है, इसलिए आप इसके साथ सभी सामान्य पूर्णांक चीजें कर सकते हैं, जैसे वेतन वृद्धि। वहाँ एक अलग के लिए कोई ज़रूरत नहीं है int--"a" तथा (char) 0x61 वही बात है


जवाब के लिए 0 № 2

का मूल्य letterNum 49 (अष्टक में 61) है, इसलिए यह बदल जाता है "u49", जो मान्य नहीं है।

आप संभवतः उपयोग करने वाले थे 0x0061, और फिर इसे चालू करें String का उपयोग करते हुए Integer.toHexString(letterNum).

संपादित करें: ऐसा लगता है कि आप "a बना नहीं सकते String का उपयोग करते हुए "u" + something.

तो, एक संभावित तरीका है Character.toString((char) letterNum).