1. หลักการ
วิธีการหลักเรียกว่า tohexstring (แปลงประเภท int เป็นสตริง hex) และ parseint (แยกวิเคราะห์สตริงเป็น int)
2. รหัส
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {สตริง hexstring = colortohexvalue (color.red); System.out.println ("hexstring:" + hexstring); สี color = fromstrtoargb (hexstring); System.out.println ("ค่า argb ของ hexstring แปลงเป็นสี :("+string.valueof (color.getalpha ())+","+string.valueof (color.getred ())+"," string.valueof (color.getGreen () } สตริงคงที่ส่วนตัว colortohexvalue (สีสี) {return inttohexvalue (color.getalpha ()))) + inttohexvalue (color.getred ()) + inttohexvalue (color.getGreen ())) + inttoHexvalue (color.getBlue (); } สตริงคงที่ส่วนตัว inttoHexValue (หมายเลข int) {สตริงผลลัพธ์ = integer.toHexstring (หมายเลข & 0xff); ในขณะที่ (result.length () <2) {result = "0" + ผลลัพธ์; } return result.touppercase (); } สีคงที่ส่วนตัว 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); สีสี = สีใหม่ (สีแดง, เขียว, น้ำเงิน, อัลฟ่า); สีกลับ; -3. ผล
4. ประเด็นสำคัญ
4.1 Tohexstring: ไม่มีอะไรจะพูด JDK ให้การแปลงจำนวนเต็มเป็นสตริงเลขฐานสิบหก
4.2 Number & 0xff: ตรวจสอบให้แน่ใจว่าเฉพาะ 8 บิตสุดท้ายของข้อมูลประเภท int นั้นถูกต้องและ 24 บิตที่สูงกว่านั้นไม่ถูกต้อง (ทั้งหมด 0) ประเภท int คือ 32 บิต แต่ค่าสีสูงสุดคือ 255 และจำเป็นต้องใช้เพียง 8 บิตเพื่อตอบสนองความต้องการ ดังนั้นเราต้องตรวจสอบให้แน่ใจว่าข้อมูลที่เข้ามาเป็นค่าสีตามกฎหมายและข้อมูลที่มากกว่า 255 จะต้องได้รับการปฏิบัติเป็น 255. ในเวลานี้มีสองวิธี อย่างแรกคือวิธีการประมวลผลในบทความนี้และประการที่สองคือการเพิ่มการตัดสิน หากข้อมูลมากกว่า 255 มันจะเท่ากับ 255 และถ้ามีน้อยกว่าก็จะไม่ถูกประมวลผล ในการเปรียบเทียบวิธีการประมวลผลในบทความนี้เป็นวิธีการประมวลผลที่มีรหัสน้อยที่สุดและมีประสิทธิภาพ
4.3 &: Bitwise "และ" การดำเนินการ หากรหัสไบนารีเป็นทั้ง 1 ผลลัพธ์คือ 1 มิฉะนั้นจะเป็น 0
4.4 0xff: 0x หมายความว่าหมายเลขเลขฐานสิบหกตามด้วยมัน; F คือ 15 และเมื่อแปลงเป็น 2 มันคือ 1111 และ FS ทั้งสองคือ 1111 1111 (255 ในทศนิยม) 24 บิตแรกคือ 0 ในเวลานี้การดำเนินการทำให้มั่นใจได้ว่าเฉพาะค่า int ในช่วง 0-255 คือค่าสีที่ถูกต้อง
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com