最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Color和16進(jìn)制字符串互相轉(zhuǎn)換的方法

 更新時(shí)間:2018年07月05日 16:40:41   作者:天香閣主  
這篇文章主要給大家介紹了關(guān)于Java中Color和16進(jìn)制字符串互相轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.原理

主要是調(diào)用了toHexString(將int類(lèi)型轉(zhuǎn)為16進(jìn)制字符串)、parseInt(將字符串解析為int)這兩個(gè)方法。

2.代碼

public static void main(String[] args) {
  String hexString = colorToHexValue(Color.RED);
  System.out.println("16進(jìn)制字符串:" + hexString);
  Color color = fromStrToARGB(hexString);
  System.out.println("16進(jìn)制字符串轉(zhuǎn)為顏色的ARGB值:("+String.valueOf(color.getAlpha())+","+String.valueOf(color.getRed())+","
  +String.valueOf(color.getGreen())+","+String.valueOf(color.getBlue())+")");
 }

 private static String colorToHexValue(Color color) {
  return intToHexValue(color.getAlpha()) + intToHexValue(color.getRed()) + intToHexValue(color.getGreen()) + intToHexValue(color.getBlue());
 }

 private static String intToHexValue(int number) {
  String result = Integer.toHexString(number & 0xff);
  while (result.length() < 2) {
   result = "0" + result;
  }
  return result.toUpperCase();
 }

 private static Color fromStrToARGB(String str) {
  String str1 = str.substring(0, 2);
  String str2 = str.substring(2, 4);
  String str3 = str.substring(4, 6);
  String str4 = str.substring(6, 8);
  int alpha = Integer.parseInt(str1, 16);
  int red = Integer.parseInt(str2, 16);
  int green = Integer.parseInt(str3, 16);
  int blue = Integer.parseInt(str4, 16);
  Color color = new Color(red, green, blue, alpha);
  return color;
 }

3.效果

4.關(guān)鍵點(diǎn)

4.1 toHexString:沒(méi)啥好說(shuō)的,JDK提供的將整數(shù)轉(zhuǎn)為16進(jìn)制字符串。

4.2 number & 0xff : 確保int類(lèi)型數(shù)據(jù)只有后8位是有效的,高24位都是無(wú)效的(都是0),int類(lèi)型是32位,但是顏色值最大就是255,只需要8位就可以滿(mǎn)足需求,因此就要確保傳入的數(shù)據(jù)是合法的顏色值,而大于255的數(shù)據(jù)就要當(dāng)作255處理,此時(shí)有兩種辦法,第一種就是本文這種處理方法,第二種就是加入判斷,如果數(shù)據(jù)大于255,那么就等于255,如果小于則不處理。相比較而言,本文處理方法是代碼最少的處理方法并且效率高。

4.3 &:按位“與”操作,如果二進(jìn)制碼同位都是1,那么結(jié)果就是1,否則就是0。

4.4 0xff: 0x代表它后面的是十六進(jìn)制的數(shù)字;f就是15,轉(zhuǎn)為2進(jìn)制就是1111,2個(gè)f則是1111 1111(10進(jìn)制的255),前面24位都是0,此時(shí)進(jìn)行與操作,就確保了只有0——255范圍內(nèi)的int值是有效顏色值。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java 泛型詳解與范例

    Java 泛型詳解與范例

    hello !大家好!今天的主題就是:泛型。在使用集合類(lèi)時(shí),大家就已經(jīng)接觸到泛型了,那就是每個(gè)集合類(lèi)后面的尖括號(hào)<>,這樣一對(duì)尖括號(hào),在java中就稱(chēng)為泛型。那么泛型這一個(gè)點(diǎn),我們又該知道多少呢?我們往下看
    2021-11-11
  • SpringBoot中創(chuàng)建bean的7種方式總結(jié)

    SpringBoot中創(chuàng)建bean的7種方式總結(jié)

    Spring是一款廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)的Java框架,其 IOC 和 DI 特性可以有效地管理應(yīng)用程序中的對(duì)象,提高了應(yīng)用程序的可維護(hù)性和可擴(kuò)展性,那你知道spring有哪些方式將bean放入容器嘛,今天就給大家總結(jié)一下
    2023-07-07
  • Java數(shù)據(jù)結(jié)構(gòu)之鏈表(動(dòng)力節(jié)點(diǎn)之Java學(xué)院整理)

    Java數(shù)據(jù)結(jié)構(gòu)之鏈表(動(dòng)力節(jié)點(diǎn)之Java學(xué)院整理)

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之鏈表(動(dòng)力節(jié)點(diǎn)之Java學(xué)院整理)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Tomcat?8.5?+mysql?5.7+jdk1.8開(kāi)發(fā)JavaSE的金牌榜小項(xiàng)目

    Tomcat?8.5?+mysql?5.7+jdk1.8開(kāi)發(fā)JavaSE的金牌榜小項(xiàng)目

    這篇文章主要介紹了Tomcat?8.5?+mysql?5.7+jdk1.8開(kāi)發(fā)JavaSE的金牌榜小項(xiàng)目,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Java無(wú)限級(jí)樹(shù)(遞歸)超實(shí)用案例

    Java無(wú)限級(jí)樹(shù)(遞歸)超實(shí)用案例

    下面小編就為大家?guī)?lái)一篇Java無(wú)限級(jí)樹(shù)(遞歸)超實(shí)用案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • java數(shù)學(xué)工具類(lèi)Math詳解(round方法)

    java數(shù)學(xué)工具類(lèi)Math詳解(round方法)

    這篇文章主要為大家詳細(xì)介紹了java數(shù)學(xué)工具類(lèi)Math,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • struts2中simple主題下<s:fieldError>標(biāo)簽?zāi)J(rèn)樣式的移除方法

    struts2中simple主題下<s:fieldError>標(biāo)簽?zāi)J(rèn)樣式的移除方法

    這篇文章主要給大家介紹了關(guān)于struts2中simple主題下<s:fieldError>標(biāo)簽?zāi)J(rèn)樣式的移除方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • java高級(jí)用法之綁定CPU的線程Thread?Affinity簡(jiǎn)介

    java高級(jí)用法之綁定CPU的線程Thread?Affinity簡(jiǎn)介

    java線程thread affinity是用來(lái)將java代碼中的線程綁定到CPU特定的核上,用來(lái)提升程序運(yùn)行的性能,這篇文章主要介紹了java高級(jí)用法之綁定CPU的線程thread affinity的相關(guān)知識(shí),需要的朋友可以參考下
    2022-05-05
  • java圖形界面編程實(shí)戰(zhàn)代碼

    java圖形界面編程實(shí)戰(zhàn)代碼

    這篇文章主要介紹了java圖形界面編程實(shí)戰(zhàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Maven配置文件settings.xml的實(shí)現(xiàn)

    Maven配置文件settings.xml的實(shí)現(xiàn)

    Maven是一個(gè)用于構(gòu)建和管理Java項(xiàng)目的強(qiáng)大工具,它依賴(lài)于設(shè)置文件來(lái)配置和管理其行為,其中最重要的之一便是settings.xml文件,本文主要介紹了Maven配置文件settings.xml的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

昌黎县| 库尔勒市| 康保县| 海盐县| 赤水市| 西昌市| 永州市| 二连浩特市| 章丘市| 民丰县| 淅川县| 樟树市| 河间市| 宁化县| 富平县| 湘潭市| 沿河| 潜山县| 喀喇| 开鲁县| 上高县| 华坪县| 鄂伦春自治旗| 怀安县| 海淀区| 遂昌县| 平原县| 崇文区| 高陵县| 河津市| 涞水县| 康定县| 绥棱县| 子长县| 安仁县| 武夷山市| 上饶市| 屯门区| 夏津县| 古交市| 吴桥县|