日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

使用 HexFormat 來格式化和解析十六進制字符串

來源: 責編: 時間:2024-03-28 17:51:49 222觀看
導讀十六進制(Hexadecimal)是一種數制系統,它使用 16 個數字來表示數值,分別是 0 到 9 和 A 到 F。十六進制經常用于表示字節數據。在十六進制表示中,一個字節可以用兩個十六進制數字表示。例如,字節的取值范圍是 0 到 255,可以

十六進制(Hexadecimal)是一種數制系統,它使用 16 個數字來表示數值,分別是 0 到 9 和 A 到 F。43c28資訊網——每日最新資訊28at.com

十六進制經常用于表示字節數據。在十六進制表示中,一個字節可以用兩個十六進制數字表示。例如,字節的取值范圍是 0 到 255,可以用 00 到 FF 來表示。其中,00 表示二進制的 00000000,FF 表示二進制的 11111111。這在 Socket 通信協議的定義中很常見。43c28資訊網——每日最新資訊28at.com

簡單來說,對于一些較短的二進制數據,可以把它序列化為十六進制字符串,其中每 2 個字符,表示一個字節。同樣,也可以把十六進制的字符串解析為字節數組。最常見的場景就是把 Hash 計算的結果表示為十六進制字符串。43c28資訊網——每日最新資訊28at.com

通常我們可以選擇使用第三方的 commons-codec 庫來實現格式化和解析十六進制字符串。可能是這個功能需求太常見,于是從JDK 17 開始,標準庫中提供了一個 HexFormat 工具類,用于格式化和解析十六進制字符串。43c28資訊網——每日最新資訊28at.com

簡單地編碼和解碼

簡單地把字節數組編碼為十六進制字符串,以及把十六進制字符串解析為字節數組。43c28資訊網——每日最新資訊28at.com

package cn.springdoc.demo.test;import java.util.HexFormat;public class Main {    public static void main(String[] args) throws Exception {                HexFormat format = HexFormat.of();                String hex = format.formatHex("hello springdoc.cn".getBytes());        System.out.println("Hex=" + hex);                byte[] bytes = format.parseHex(hex);        System.out.println("bytes=" + new String(bytes));    }}

首先,通過 of 靜態方法創建 HexFormat 實例對象。然后調用 formatHex 方法來把字節數組格式化十六進制字符串。最后再調用 parseHex 方法把十六進制字符串解析為字節數組。43c28資訊網——每日最新資訊28at.com

parseHex 和 parseHex 都有一些重載方法,可以指定字符串或者字節數組的區間:43c28資訊網——每日最新資訊28at.com

  • String formatHex(byte[] bytes)
  • String formatHex(byte[] bytes, int fromIndex, int toIndex)
  • <A extends Appendable> A formatHex(A out, byte[] bytes)
  • <A extends Appendable> A formatHex(A out, byte[] bytes, int fromIndex, int toIndex)
  • byte[] parseHex(CharSequence string)
  • byte[] parseHex(CharSequence string, int fromIndex, int toIndex)
  • byte[] parseHex(char[] chars, int fromIndex, int toIndex)

執行方法,輸出如下:43c28資訊網——每日最新資訊28at.com

Hex=68656c6c6f20737072696e67646f632e636ebytes=hello springdoc.cn

分隔符

在一些場景中,給十六進制字符串中每一個字節之間添加一個分隔符可讀性會更好。43c28資訊網——每日最新資訊28at.com

例如:68:65:6c:6c:6f:20:73:70:72:69:6e:67:64:6f:63:2e:63:6e。43c28資訊網——每日最新資訊28at.com

// 通過 ofDelimiter 方法創建HexFormat,指定分隔符HexFormat format = HexFormat.ofDelimiter(":");String hex = format.formatHex("hello springdoc.cn".getBytes());System.out.println("Hex=" + hex);byte[] bytes = format.parseHex(hex);System.out.println("bytes=" + new String(bytes));// 獲取分隔符String delimiter = format.delimiter();System.out.println("分隔符=" + delimiter);

只需要通過 ofDelimiter 靜態方法,指定分隔符來創建 HexFormat 實例即可,同時也可以通過 delimiter 方法來獲取設置的分隔符。43c28資訊網——每日最新資訊28at.com

輸出如下,每個字節(兩個字符)之間都添加了指定的分隔符:43c28資訊網——每日最新資訊28at.com

Hex=68:65:6c:6c:6f:20:73:70:72:69:6e:67:64:6f:63:2e:63:6ebytes=hello springdoc.cn分隔符=:

前綴和后綴

也可以給每個字節,即每兩個十六進制字符串設置前綴和后綴。43c28資訊網——每日最新資訊28at.com

HexFormat format = HexFormat.ofDelimiter(":")        .withPrefix("[")    // 設置前綴        .withSuffix("]")    // 設置后綴        ;String hex = format.formatHex("hello springdoc.cn".getBytes());System.out.println("Hex=" + hex);byte[] bytes = format.parseHex(hex);System.out.println("bytes=" + new String(bytes));System.out.println("前綴=" + format.prefix() + ", 后綴=" + format.suffix());

通過 withPrefix 和 withSuffix 方法來設置前綴和后綴。注意 HexFormat 是不可變的對象(類似于 String),所以任何修改都會返回一個新的 HexFormat 對象。43c28資訊網——每日最新資訊28at.com

輸出如下:43c28資訊網——每日最新資訊28at.com

Hex=[68]:[65]:[6c]:[6c]:[6f]:[20]:[73]:[70]:[72]:[69]:[6e]:[67]:[64]:[6f]:[63]:[2e]:[63]:[6e]bytes=hello springdoc.cn前綴=[, 后綴=]

大小寫

十六進制中有 A - F 字母,也可以設置字母的大小寫。43c28資訊網——每日最新資訊28at.com

HexFormat format = HexFormat.of()    //  .withLowerCase()    // 字母小寫,默認        .withUpperCase()    // 字母大寫        ;String hex = format.formatHex("hello springdoc.cn".getBytes());System.out.println("Hex=" + hex);byte[] bytes = format.parseHex(hex);System.out.println("bytes=" + new String(bytes));System.out.println("大寫=" + format.isUpperCase());

通過 withLowerCase(默認)和 withUpperCase 方法來設置十六進制字符串中字母的大小寫,通過 isUpperCase 方法來獲取是否開啟了大寫。43c28資訊網——每日最新資訊28at.com

輸出如下:43c28資訊網——每日最新資訊28at.com

Hex=68656C6C6F20737072696E67646F632E636Ebytes=hello springdoc.cn大寫=true

實際案例

最后來看一個實際案例,把 SHA256 哈希值編碼為十六進制字符串:43c28資訊網——每日最新資訊28at.com

package cn.springdoc.demo.test;import java.security.MessageDigest;import java.util.HexFormat;public class Main {    public static void main(String[] args) throws Exception {        // 創建 SHA256 MessageDigest        MessageDigest digest = MessageDigest.getInstance("SHA256");                // 計算字符串 "123456" 的哈希值        byte[] sha256 = digest.digest("123456".getBytes());                // 把哈希結果編碼為十六進制字符串        String sha256Hex = HexFormat.of().withUpperCase().formatHex(sha256);                System.out.println(sha256Hex);    }    }

輸出如下:43c28資訊網——每日最新資訊28at.com

8D969EEF6ECAD3C29A3A629280E686CF0C3F5D5A86AFF3CA12020C923ADC6C92

總結

本文介紹了如何使用 JDK 17 新增的 HexFormat 工具類來格式化和解析十六進制字符串,通過 HexFormat 工具類還可以輕松地設置分隔符,字母大小寫以及前綴和后綴。43c28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-80199-0.html使用 HexFormat 來格式化和解析十六進制字符串

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 面試官:說說Spring中IoC實現原理?

下一篇: SaaS多租戶架構數據源動態切換解決方案

標簽:
  • 熱門焦點
  • CSS單標簽實現轉轉logo

    轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 深度探索 Elasticsearch 8.X:function_score 參數解讀與實戰案例分析

    在 Elasticsearch 中,function_score 可以讓我們在查詢的同時對搜索結果進行自定義評分。function_score 提供了一系列的參數和函數讓我們可以根據需求靈活地進行設置。近期
  • 只需五步,使用start.spring.io快速入門Spring編程

    步驟1打開https://start.spring.io/,按照屏幕截圖中的內容創建項目,添加 Spring Web 依賴項,并單擊“生成”按鈕下載 .zip 文件,為下一步做準備。請在進入步驟2之前進行解壓。圖
  • 品牌洞察丨服務本地,美團直播成效幾何?

    來源:17PR7月11日,美團App首頁推薦位出現&ldquo;美團直播&rdquo;的固定入口。在直播聚合頁面,外賣&ldquo;神槍手&rdquo;直播間、美團旅行直播間、美團買菜直播間等均已上線,同時
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 滴滴違法違規被罰80.26億 共存在16項違法事實

    滴滴違法違規被罰80.26億 存在16項違法事實開始于2121年7月,歷經一年時間,網絡安全審查辦公室對“滴滴出行”網絡安全審查終于有了一個暫時的結束。據“網信
  • 微軟發布Windows 11新版 引入全新任務欄狀態

    近日,微軟發布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統更流暢了。更新中,Windows 11加入了專門針對平板優化的任務欄
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲欧美三级伦理| 激情文学综合丁香| 欧美猛交免费看| 欧美色大人视频| 国产麻豆成人精品| 红桃视频国产一区| 亚洲精品日韩在线| 在线综合亚洲| 久久精品视频播放| 欧美激情第六页| 国产精品美女xx| 一区二区三区在线看| 亚洲久久成人| 欧美一区二区在线观看| 欧美α欧美αv大片| 国产精品扒开腿爽爽爽视频| 国产主播一区二区三区| 亚洲欧洲一级| 亚洲综合三区| 麻豆91精品91久久久的内涵| 欧美视频在线观看免费网址| 国产最新精品精品你懂的| 亚洲精品国产精品国自产在线| 亚洲欧美日韩在线一区| 麻豆国产精品777777在线| 欧美色图首页| 在线看成人片| 亚洲一区精品电影| 久久综合给合久久狠狠狠97色69| 国产精品av免费在线观看| 一区二区在线视频| 亚洲一区二区三区中文字幕| 榴莲视频成人在线观看| 国产精品久久久久久久久| 在线成人激情黄色| 亚洲欧美一级二级三级| 欧美激情精品| 黄色av日韩| 亚洲一区激情| 欧美绝品在线观看成人午夜影视 | 午夜精品久久久久久久99黑人| 噜噜噜久久亚洲精品国产品小说| 国产精品家庭影院| 亚洲国产精品精华液网站| 亚欧美中日韩视频| 欧美日韩精品免费观看视频完整| 一区二区在线观看视频| 欧美一区二区三区免费大片| 欧美片第一页| 亚洲精品乱码久久久久久久久 | 亚洲激情电影中文字幕| 羞羞答答国产精品www一本| 欧美日韩另类字幕中文| 亚洲国产婷婷香蕉久久久久久| 久久国产成人| 欧美丝袜一区二区| 亚洲美女在线一区| 欧美高清视频一区二区三区在线观看 | 精品成人国产| 欧美中文字幕久久| 国产精品一区久久| 亚洲一区二区三区免费观看| 欧美日韩亚洲一区三区| 亚洲欧洲三级| 免费日韩av片| 雨宫琴音一区二区在线| 久久精品男女| 国产视频精品免费播放| 亚洲欧美资源在线| 国产精品免费区二区三区观看| 99国产精品久久久| 欧美日韩不卡一区| 亚洲精品偷拍| 欧美女激情福利| 亚洲欧洲一区二区三区久久| 欧美激情第9页| 亚洲精品在线视频观看| 欧美乱人伦中文字幕在线| 亚洲日本中文字幕免费在线不卡| 免费欧美在线视频| 91久久精品久久国产性色也91| 免费观看国产成人| 亚洲国产精品第一区二区| 欧美成人激情在线| 亚洲日本一区二区三区| 欧美日韩国产欧美日美国产精品| 日韩一本二本av| 欧美色图麻豆| 亚洲欧美中文日韩v在线观看| 国产精品入口福利| 欧美一级淫片aaaaaaa视频| 国产日韩欧美日韩大片| 久久精品亚洲一区二区三区浴池| 国产真实久久| 免费一级欧美片在线观看| 亚洲精品一区二区网址| 欧美调教视频| 欧美一区二区三区在线看| 韩日在线一区| 欧美成人精品在线观看| 99精品视频免费观看| 国产精品黄页免费高清在线观看| 欧美亚洲综合另类| 尤物在线观看一区| 欧美乱妇高清无乱码| 亚洲欧美久久久久一区二区三区| 国产欧美亚洲一区| 狂野欧美一区| 一区二区三区蜜桃网| 国产区日韩欧美| 免费日韩av电影| 亚洲一区二区三区高清不卡| 国产亚洲成av人片在线观看桃| 久久蜜桃香蕉精品一区二区三区| 亚洲日本va午夜在线影院| 国产精品日韩久久久| 久久视频国产精品免费视频在线| 亚洲精品三级| 国产精品视频网| 美国三级日本三级久久99| 一二三区精品福利视频| 国产亚洲人成a一在线v站 | 国产精品日韩欧美一区二区三区| 久久精品人人| 日韩午夜激情| 国产三级精品三级| 欧美黄色成人网| 午夜欧美理论片| 亚洲激情欧美激情| 国产精品久久久久三级| 久久视频国产精品免费视频在线| 一区二区电影免费在线观看| 国产亚洲美州欧州综合国| 欧美激情区在线播放| 香蕉国产精品偷在线观看不卡| 在线成人中文字幕| 国产精品国产三级国产专播精品人 | 亚洲精选在线| 国产香蕉97碰碰久久人人| 欧美成人一二三| 午夜免费日韩视频| 亚洲精品视频一区二区三区| 国产婷婷色一区二区三区四区| 欧美精品福利| 久久久久久色| 亚洲尤物在线视频观看| 亚洲国产高潮在线观看| 国产精品一二| 欧美日本国产视频| 久久伊人亚洲| 欧美在线播放一区二区| 一本久道久久综合中文字幕| 尤物九九久久国产精品的分类| 国产精品久久婷婷六月丁香| 欧美国产亚洲精品久久久8v| 久久高清国产| 中日韩男男gay无套| 亚洲国产精品精华液2区45| 国产伦精品一区二区三| 欧美另类99xxxxx| 久久人人精品| 欧美中文在线字幕| 中文精品视频| 亚洲人体1000| 在线精品亚洲一区二区| 国产日韩欧美成人| 国产精品久久久久9999高清| 欧美精品www在线观看| 久久青草欧美一区二区三区| 亚洲天堂久久| 日韩一级黄色大片| 亚洲国产美女久久久久| 黑人极品videos精品欧美裸| 国产精品自拍在线| 欧美性色aⅴ视频一区日韩精品| 欧美成人网在线| 久久在线免费观看| 久久国产色av| 欧美影院成人| 性欧美18~19sex高清播放| 亚洲午夜高清视频| 夜夜狂射影院欧美极品| 亚洲久久成人| 亚洲精品男同| 亚洲肉体裸体xxxx137| 亚洲国产成人精品女人久久久 | 99亚洲一区二区| 亚洲乱码国产乱码精品精| 亚洲黄色成人| 在线日韩欧美| 在线视频观看日韩| 伊人久久婷婷| 在线不卡亚洲| 亚洲国产小视频| 91久久国产综合久久蜜月精品| 亚洲激情视频网| 亚洲精品欧美日韩专区| 亚洲人成人一区二区在线观看| 亚洲国产免费看| 亚洲精品久久久久久一区二区| 亚洲精品老司机| 日韩一二三在线视频播| av成人老司机| 亚洲一区二区三区色|