मेरे पास पांच-वर्ण वाली स्ट्रिंग है और मैं उन पांच अक्षरों को ASCII-encoded (प्रिंट करने योग्य) संख्या के रूप में उपयोग करना चाहता हूं। सबसे आसान तरीका है इस लक्ष्य को हासिल करने के लिएरेडिक्स के साथ जावा नंबर> वर्ण .MAX_RADIX
Long.toString(number, Character.MAX_RADIX);
उपयोग करने के लिए यह मैं "0"
से "zzzzz"
को नंबर दे देंगे। दुर्भाग्यवश Long.toString(int, int)
केवल निम्न-केस अक्षरों का समर्थन करता है, कोई ऊपरी-केस अक्षर नहीं। इसका मतलब है कि अधिकतम रेडिक्स 36
है और उच्चतम संख्या जिसे मैं एन्कोड कर सकता हूं 36^5 - 1 = 60 466 175
है। यदि मैं निचले और ऊपरी-केस अक्षरों दोनों का उपयोग कर सकता हूं, तो मुझे 62
का अधिकतम रेडिक्स मिलेगा और उच्चतम एन्कोडेबल नंबर 62^5 - 1 = 916 132 831
है।
Long
के स्रोत कोड की प्रतिलिपि बनाने और संभावित अंकों को विस्तारित करने के अलावा, क्या कोई अन्य जगह है जहां मुझे देखना चाहिए, पहले, जहां यह पहले ही लागू हो चुका है?
आप बेस 64 एन्कोडर्स और डिकोडर्स (उदाहरण के लिए, http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html) देखना चाहते हैं, जो दो अतिरिक्त प्रतीकों का उपयोग करते हैं एन्कोडिंग के लिए। – subsub
@subsub: व्हाइटफैंग का उत्तर –