दिलचस्प पोस्ट
संस्करण संख्या तुलना लिंकिंग त्रुटि: कमांड लाइन से DSO अनुपलब्ध है क्या अजाक्स अनुरोध को भरोसेमंद आग में उतारने की इवेंट का उपयोग किया जा सकता है? कस्टम वर्ग के लिए अधिलेखित बूल () Python के उपयोग से ps के आउटपुट को अलग करना ?? स्विफ्ट में ऑपरेटर Derive.prototype = new Base पर 'नया' कीवर्ड का उपयोग करने का क्या कारण है? इवेंट लॉग को लिखते समय System.Security.SecurityException ऐप्लीकेशन में एएसपी.नेट असेंबलियों को जीवित कैसे रखना है? जावा प्रतिबिंब प्रदर्शन मेवेन मल्टी मॉड्यूल प्रोजेक्ट को भाई मॉड्यूल नहीं मिल सकता है पॉइंटर को नल को क्यों हटाए नहीं? सभी गतिविधियों में नेविगेशन ड्रॉवर कैसे प्रदर्शित करें? .कीकोड बनाम। जो वेब संग्रह के वेब-एनएफ़ निर्देशिका से एक संसाधन कैसे लोड करें

जावा में एक यादृच्छिक वर्ण उत्पन्न करने के लिए क्या कार्यक्षमता है?

क्या जावा में बेतरतीब अक्षर या तार उत्पन्न करने की कोई कार्यक्षमता है? या किसी को केवल एक यादृच्छिक पूर्णांक चुनना चाहिए और उस पूर्णांक की आस्सी कोड को एक वर्ण में परिवर्तित करना चाहिए?

Solutions Collecting From Web of "जावा में एक यादृच्छिक वर्ण उत्पन्न करने के लिए क्या कार्यक्षमता है?"

ऐसा करने के कई तरीके हैं, लेकिन हां, इसमें एक यादृच्छिक int पैदा करना शामिल होता है (उदाहरण के लिए java.util.Random.nextInt ) और उसके बाद char ओर एक नक्शा करने के लिए इसका उपयोग करना यदि आपके पास एक विशिष्ट वर्णमाला है, तो ऐसा कुछ निफ्टी है:

  import java.util.Random; //... Random r = new Random(); String alphabet = "123xyz"; for (int i = 0; i < 50; i++) { System.out.println(alphabet.charAt(r.nextInt(alphabet.length()))); } // prints 50 random characters from alphabet 

ध्यान दें कि java.util.Random वास्तव में एक छद्म -रैंडम संख्या जनरेटर है, बल्कि कमजोर रेखीय अनुरूपता सूत्र पर आधारित है । आपने क्रिप्टोग्राफी की आवश्यकता का उल्लेख किया; आप उस मामले में अधिक मजबूत cryptographically सुरक्षित छद्म यादृच्छिक संख्या जनरेटर के उपयोग की जांच करना चाह सकते हैं (जैसे java.security.SecureRandom )।

Az में यादृच्छिक अक्षर उत्पन्न करने के लिए:

 Random r = new Random(); char c = (char)(r.nextInt(26) + 'a'); 

आप अपैका कॉमन्स परियोजना से रैंडम स्ट्रिंग यूटिलस का भी उपयोग कर सकते हैं:

 RandomStringUtils.randomAlphabetic(stringLength); 
 private static char rndChar () { int rnd = (int) (Math.random() * 52); // or use Random or whatever char base = (rnd < 26) ? 'A' : 'a'; return (char) (base + rnd % 26); } 

श्रेणियों के मूल्यों को एज़, एज़।

छोटे "ए" के 97 एस्सीआई मूल्य के निम्नलिखित में

 public static char randomSeriesForThreeCharacter() { Random r = new Random(); char random_3_Char = (char) (97 + r.nextInt(3)); return random_3_Char; } 

ए, बी, सी या डी के लिए 3 संख्या से ऊपर और यदि आप सभी वर्णों को एक से ज़्यादा चाहते हैं तो आप 3 संख्या 25 को बदल देते हैं।

डॉलर का उपयोग कर:

 Iterable<Character> chars = $('a', 'z'); // 'a', 'b', c, d .. z 

दिए गए chars आप chars "फेरबदल" श्रेणी का निर्माण कर सकते हैं:

 Iterable<Character> shuffledChars = $('a', 'z').shuffle(); 

तो पहले n वर्ण ले, आप लंबाई n एक यादृच्छिक स्ट्रिंग मिलता है। अंतिम कोड बस है:

 public String randomString(int n) { return $('a', 'z').shuffle().slice(n).toString(); } 

एनबी : कंडीशन n > 0 slice द्वारा चहेच किया जाता है

संपादित करें

जैसा कि स्टीव ने सही तरीके से बताया, randomString प्रत्येक बार प्रत्येक अक्षर का उपयोग करता है। वैकल्पिक हल के रूप में आप कॉल shuffle से पहले वर्णमाला m बार दोहरा सकते हैं:

 public String randomStringWithRepetitions(int n) { return $('a', 'z').repeat(10).shuffle().slice(n).toString(); } 

या सिर्फ अपने वर्णमाला को String रूप में प्रदान करें:

 public String randomStringFromAlphabet(String alphabet, int n) { return $(alphabet).shuffle().slice(n).toString(); } String s = randomStringFromAlphabet("00001111", 4); 

स्ट्रिंग एबीसी = "एबीसीडीईएफजीएचआईजेकेएलएमएनओपीक्यूआरएसटीयूवीएक्सएजेड";

चार अक्षर = abc.charAt (rd.nextInt (ab.length ()));

यह एक भी काम करता है

तुम्हें यह मिल गया है। बस अपने आप को यादृच्छिक ASCII कोड उत्पन्न करें यद्यपि आपको इसके लिए क्या आवश्यकता है?

आप Quickcheck विनिर्देश-आधारित परीक्षण ढांचे से जनरेटर का उपयोग कर सकते हैं।

किसी स्ट्रिंग विधि को किसी भी स्ट्रिंग विधि का उपयोग करने के लिए

 String x = anyString(); 

आप अक्षरों के एक अधिक प्रतिबंधित सेट या न्यूनतम / अधिकतम आकार प्रतिबंधों से तार बना सकते हैं।

आम तौर पर आप एकाधिक मूल्यों के साथ परीक्षण चलाएंगे:

 @Test public void myTest() { for (List<Integer> any : someLists(integers())) { //A test executed with integer lists } } 

Java Randomizer वर्ग पर एक नज़र डालें मुझे लगता है कि आप यादृच्छिक (चार [] सरणी) पद्धति का उपयोग करके एक वर्ण को यादृच्छिक बना सकते हैं।

पॉलीगेंगेल्यूबिकैंट्स का उत्तर भी एक अच्छा समाधान है यदि आप केवल हेक्स मान पैदा करना चाहते हैं:

 /** A list of all valid hexadecimal characters. */ private static char[] HEX_VALUES = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'A', 'B', 'C', 'D', 'E', 'F' }; /** Random number generator to be used to create random chars. */ private static Random RANDOM = new SecureRandom(); /** * Creates a number of random hexadecimal characters. * * @param nValues the amount of characters to generate * * @return an array containing <code>nValues</code> hex chars */ public static char[] createRandomHexValues(int nValues) { char[] ret = new char[nValues]; for (int i = 0; i < nValues; i++) { ret[i] = HEX_VALUES[RANDOM.nextInt(HEX_VALUES.length))]; } return ret; } 

अगर आप अपने कोड में एक नई लाइब्रेरी जोड़ने पर मन नहीं लगाते तो आप MockNeat के साथ वर्ण उत्पन्न कर सकते हैं (अस्वीकरण: मैं लेखकों में से एक हूं)

 MockNeat mock = MockNeat.threadLocal(); Character chr = mock.chars().val(); Character lowerLetter = mock.chars().lowerLetters().val(); Character upperLetter = mock.chars().upperLetters().val(); Character digit = mock.chars().digits().val(); Character hex = mock.chars().hex().val(); 

इसे इस्तेमाल करे..

 public static String generateCode() { String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String fullalphabet = alphabet + alphabet.toLowerCase() + "123456789"; Random random = new Random(); char code = fullalphabet.charAt(random.nextInt(9)); return Character.toString(code); } 
  Random randomGenerator = new Random(); int i = randomGenerator.nextInt(256); System.out.println((char)i); 

आपको जो चाहिए, उसका ख्याल रखना चाहिए, मान लीजिए कि आप '0,' 1 ',' 2 'पर विचार करते हैं।