मैं जावा, एएससीआईआई कोड (जो [0, 255] रेंज से पूर्णांक है) को इसके अनुरूप ASCII वर्ण में कैसे परिवर्तित कर सकता हूं?
उदाहरण के लिए:
65 -> "A"
102 -> "f"
मैं जावा, एएससीआईआई कोड (जो [0, 255] रेंज से पूर्णांक है) को इसके अनुरूप ASCII वर्ण में कैसे परिवर्तित कर सकता हूं?
उदाहरण के लिए:
65 -> "A"
102 -> "f"
जवाबों:
Character.toString(char)
, stackoverflow.com/a/6210938/9235 अतिरिक्त समाधान प्रदान करता है।
(char)
पदनाम का कारण क्या है ? दूसरे शब्दों में, मैं सिर्फ क्यों नहीं डाल सकता Character.toString(i);
? (जावा noob)
Integer
प्रकार के लिए काम नहीं करेगा , आपको "java.lang.Integer मिलेगा java.lang.Character" त्रुटि नहीं डाली जा सकती है। int
पहले एक कलाकार को जोड़ें , जैसे: Character.toString((char)(int)myInteger);
i
मूल्यों (0-255) ISO-8859-1 वर्ण सेट से होगा। (प्रश्न पूछने वाले ने यह स्वीकार करने से इनकार कर दिया कि "ASCII का विस्तार" [अस्पष्ट शब्द] चाहता था, इस उत्तर को स्वीकार करने के अलावा।)
String.valueOf
(
Character.toChars(int)
)
पूर्णांक मान लें, जैसा कि आप कहते हैं, 0 से 255 के बीच, आपको एकल वर्ण वापस से एक सरणी Character.toChars
मिलेगी, जो पास होने पर एकल-वर्ण स्ट्रिंग बन जाएगी String.valueOf
।
कई कारणों से (जैसे ) Character.toChars
से कलाकारों को शामिल करने के तरीकों का उपयोग करना बेहतर होता है, इसमें वह भी शामिल होगा यदि आप पूर्णांक को सही ढंग से सत्यापित करने में विफल रहते हैं, जबकि कलाकार त्रुटि ( संकीर्ण आदिम रूपांतरण विनिर्देश के अनुसार ) को निगल जाएगा , संभवतः दे रहा है एक आउटपुट के अलावा जो आप चाहते थे।int
char
(char) i
Character.toChars
IllegalArgumentException
toChars
।
Character.toString((char) i)
तेजी से है String.valueOf(Character.toChars(i))
। मेरी मशीन पर दी गई श्रेणी (100 बार, सुरक्षित रहने के लिए) में 1,000,000 यादृच्छिक पूर्णांकों को परिवर्तित करने का एक त्वरित बेंचमार्क चलाने से 153.07 नैनोसेकंड बनाम 862.39 नैनोसेकंड का औसत समय मिलता है। हालांकि, किसी भी दिलचस्प एप्लिकेशन में अनुकूलन के लिए कहीं अधिक महत्वपूर्ण चीजें होंगी। [0,255] सीमा के बाहर सुरक्षित, नियतात्मक हैंडलिंग और विस्तार में आसानी के अतिरिक्त मूल्य को मामूली प्रदर्शन हिट की आवश्यकता होनी चाहिए।
इस तरह से एक से z तक एक पुनरावृति हो सकती है
int asciiForLowerA = 97;
int asciiForLowerZ = 122;
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){
search(sCurrentLine, searchKey + Character.toString ((char) asciiCode));
}
वही करने का एक आसान तरीका:
चरित्र के लिए पूर्णांक लिखें int n
, तो पूर्णांक बनने दें :
Char c=(char)n;
System.out.print(c)//char c will store the converted value.
for (int i = 0; i < 256; i++) {
System.out.println(i + " -> " + (char) i);
}
char lowercase = 'f';
int offset = (int) 'a' - (int) 'A';
char uppercase = (char) ((int) lowercase - offset);
System.out.println("The uppercase letter is " + uppercase);
String numberString = JOptionPane.showInputDialog(null,
"Enter an ASCII code:",
"ASCII conversion", JOptionPane.QUESTION_MESSAGE);
int code = (int) numberString.charAt(0);
System.out.println("The character for ASCII code "
+ code + " is " + (char) code);
क्यों इसे एक ऐसी विधि के लिए सरल नहीं बनाया गया है जो अस्की चरित्र लौटाता है?
public char toAscii (int input) {
return (char)input;
}
यह एक उदाहरण है, जो दर्शाता है कि एक इंट को चार में परिवर्तित करके, एक ASCII कोड के अनुरूप चरित्र को निर्धारित किया जा सकता है।
public class sample6
{
public static void main(String... asf)
{
for(int i =0; i<256; i++)
{
System.out.println( i + ". " + (char)i);
}
}
}
समस्या को हल करने के पास केवल ऊपरी उत्तर। आपके जवाब का जवाब देता है:
Integer.decode (Character.toString (char c));