ASCII कोड (0-255) को उसके संबंधित वर्ण में कैसे बदलें?


135

मैं जावा, एएससीआईआई कोड (जो [0, 255] रेंज से पूर्णांक है) को इसके अनुरूप ASCII वर्ण में कैसे परिवर्तित कर सकता हूं?

उदाहरण के लिए:

65  -> "A"
102 -> "f"

3
यह एक डुप्लिकेट नहीं है जैसा कि ऊपर उल्लेख किया गया है। यह पूर्णांक से नहीं बल्कि चार (
चतुरंगा चंद्रशेखर

11
"डुप्लिकेट से स्ट्रिंग में कनवर्ट करने के लिए कैसे?" का कोई डुप्लिकेट नहीं ... वैसे भी, FWIW, ASCII केवल 7-बिट है मूल्यों के साथ [0, 127] ;-)

1
@phooji मुझे लगता है कि उस पोस्ट को कैसे 1 -> "1" आदि में परिवर्तित किया जा सकता है
बेल्गी

1
@pst - यह ASII ;-)
बेल्गी

3
@ बेल्गी - यदि आप सही ढंग से ट्रांसकोड मान 128-255 करना चाहते हैं तो आपको अपनी एन्कोडिंग स्पष्ट रूप से बताना होगा। "विस्तारित ASCII" शब्द सार्थक नहीं है।
मैकडोवेल

जवाबों:


244

MIDP 2 / CLDC 1.1 आधारित प्लेटफ़ॉर्म के लिए (जिसमें नहीं है Character.toString(char), stackoverflow.com/a/6210938/9235 अतिरिक्त समाधान प्रदान करता है।
अब्दुल्ल

(char)पदनाम का कारण क्या है ? दूसरे शब्दों में, मैं सिर्फ क्यों नहीं डाल सकता Character.toString(i);? (जावा noob)
एडम ह्यूजेस

1
ध्यान दें कि यह Integerप्रकार के लिए काम नहीं करेगा , आपको "java.lang.Integer मिलेगा java.lang.Character" त्रुटि नहीं डाली जा सकती है। intपहले एक कलाकार को जोड़ें , जैसे: Character.toString((char)(int)myInteger);
gbmhunter

1
iमूल्यों (0-255) ISO-8859-1 वर्ण सेट से होगा। (प्रश्न पूछने वाले ने यह स्वीकार करने से इनकार कर दिया कि "ASCII का विस्तार" [अस्पष्ट शब्द] चाहता था, इस उत्तर को स्वीकार करने के अलावा।)
टॉम ब्लोडेट

59

System.out.println((char)65); प्रिंट "A"


2
REPL टिप: यदि आप JShell (Java 9) का उपयोग करते हैं तो आप System.out को छोड़ सकते हैं। बस (char) 65यह पता लगाने के लिए कि यह किस वर्ण का है।
डेविड जनस

2
प्रश्न मुद्रण के बारे में नहीं है बल्कि परिवर्तित करने के बारे में है।
10

29

String.valueOf(Character.toChars(int))

पूर्णांक मान लें, जैसा कि आप कहते हैं, 0 से 255 के बीच, आपको एकल वर्ण वापस से एक सरणी Character.toCharsमिलेगी, जो पास होने पर एकल-वर्ण स्ट्रिंग बन जाएगी String.valueOf

कई कारणों से (जैसे ) Character.toCharsसे कलाकारों को शामिल करने के तरीकों का उपयोग करना बेहतर होता है, इसमें वह भी शामिल होगा यदि आप पूर्णांक को सही ढंग से सत्यापित करने में विफल रहते हैं, जबकि कलाकार त्रुटि ( संकीर्ण आदिम रूपांतरण विनिर्देश के अनुसार ) को निगल जाएगा , संभवतः दे रहा है एक आउटपुट के अलावा जो आप चाहते थे।intchar(char) iCharacter.toCharsIllegalArgumentException


यह मानते हुए कि पूर्णांक 0 से 255 तक है (जैसा कि आप बताते हैं कि आप करते हैं ... और जैसा कि प्रश्न निर्दिष्ट करता है), यह उपयोग करने के लिए अनावश्यक और उप-प्रकार है toChars
स्टीफन सी

5
आप पूरी तरह से सही हैं कि जैसे कुछ Character.toString((char) i)तेजी से है String.valueOf(Character.toChars(i))। मेरी मशीन पर दी गई श्रेणी (100 बार, सुरक्षित रहने के लिए) में 1,000,000 यादृच्छिक पूर्णांकों को परिवर्तित करने का एक त्वरित बेंचमार्क चलाने से 153.07 नैनोसेकंड बनाम 862.39 नैनोसेकंड का औसत समय मिलता है। हालांकि, किसी भी दिलचस्प एप्लिकेशन में अनुकूलन के लिए कहीं अधिक महत्वपूर्ण चीजें होंगी। [0,255] सीमा के बाहर सुरक्षित, नियतात्मक हैंडलिंग और विस्तार में आसानी के अतिरिक्त मूल्य को मामूली प्रदर्शन हिट की आवश्यकता होनी चाहिए।
zjs


4
    new String(new char[] { 65 })

आप लंबाई की एक स्ट्रिंग के साथ समाप्त हो जाएंगे, जिसके एकल चरित्र में (ASCII) कोड 65 है। जावा चार्ट में संख्यात्मक डेटा प्रकार हैं।


1

इस तरह से एक से z तक एक पुनरावृति हो सकती है

int asciiForLowerA = 97;
int asciiForLowerZ = 122;
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){
    search(sCurrentLine, searchKey + Character.toString ((char) asciiCode));
}

1

वही करने का एक आसान तरीका:

चरित्र के लिए पूर्णांक लिखें int n, तो पूर्णांक बनने दें :

Char c=(char)n;
System.out.print(c)//char c will store the converted value.

0
    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);

कृपया अपना उत्तर बताएं
want2learn

0

क्यों इसे एक ऐसी विधि के लिए सरल नहीं बनाया गया है जो अस्की चरित्र लौटाता है?

public char toAscii (int input) {
    return (char)input;
}

-1

यह एक उदाहरण है, जो दर्शाता है कि एक इंट को चार में परिवर्तित करके, एक ASCII कोड के अनुरूप चरित्र को निर्धारित किया जा सकता है।

public class sample6
{
    public static void main(String... asf)
    {

        for(int i =0; i<256; i++)
        {
            System.out.println( i + ". " + (char)i);
        }
    }
}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.