在JAVA中生成UUID字符串的有效方法(不帶破折號的UUID.randomUUID()。toString())
最終基于UUID.java實現編寫了自己的東西。請注意,我 ,而是以我能想到的最有效的方式 隨機的32字節十六進制字符串。
實作import java.security.SecureRandom;import java.util.UUID;public class RandomUtil { // Maxim: copied from UUID implementation :) private static volatile SecureRandom numberGenerator = null; private static final long MSB = 0x8000000000000000L; public static String unique() {SecureRandom ng = numberGenerator;if (ng == null) { numberGenerator = ng = new SecureRandom();}return Long.toHexString(MSB | ng.nextLong()) + Long.toHexString(MSB | ng.nextLong()); } }用法
RandomUtil.unique()測驗
我已經測試過一些輸入,以確保其正常工作:
public static void main(String[] args) { System.out.println(UUID.randomUUID().toString()); System.out.println(RandomUtil.unique()); System.out.println(); System.out.println(Long.toHexString(0x8000000000000000L |21)); System.out.println(Long.toBinaryString(0x8000000000000000L |21)); System.out.println(Long.toHexString(Long.MAX_VALUE + 1));}解決方法
我想要一個高效的實用程序來生成唯一的字節序列。UUID是一個很好的候選人,但是會UUID.randomUUID().toString()生成類似的東西44e128a5-ac7a-4c9a-be4c-224b6bf81b20,但是我更喜歡無破折號的字符串。
我正在尋找一種僅從字母數字字符(無破折號或任何其他特殊符號)生成隨機字符串的有效方法。
相關文章:
1. HTML5禁止img預覽該怎么解決?2. javascript - vue+iview upload傳參失敗 跨域問題后臺已經解決 仍然報403,這是怎么回事啊?3. python - django 按日歸檔統計訂單求解4. objective-c - 從朋友圈跳到我的APP 如何實現?5. 百度地圖api - Android 百度地圖 集成了定位,導航 相互的jar包有沖突?6. 網頁爬蟲 - python爬蟲用BeautifulSoup爬取<s>元素并寫入字典,但某些div下沒有這一元素,導致自動寫入下一條,如何解決?7. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。8. 請教一個python字符串處理的問題?9. sql語句 - mysql中關聯表查詢問題10. 怎么可以實現在手機瀏覽器看到鏈接的title屬性,就是鼠標放上去會有一個tip效果的
