如何使用Java中的System.out.printf()语句将RGB值转换为Hexidecimal值

pet*_*idt -2 java rgb hex

我必须在我的java程序中将RGB颜色代码转换为十六进制代码,我不知道该怎么做.我应该使用System.out.printf()语句来进行转换.

谁能告诉我一个如何用Java做这个的例子?我真的很感激!

Dao*_*Wen 5

我想你只是问如何获取三进制的十进制整数,例如rgb(0, 100, 255),将它转换为单个十六进制字符串,就像它们在HTML中使用一样,例如#0064FF.我用printf而不是println:

System.out.printf("#%02X%02X%02X%n", red, green, blue);
Run Code Online (Sandbox Code Playgroud)

如果你真的开始使用println,那么你可以String.format用于转换:

System.out.println(String.format("#%02X%02X%02X", red, green, blue));
Run Code Online (Sandbox Code Playgroud)

如果您想了解它是如何工作的,您可以阅读Java的格式字符串语法.基本上,%02X意思是:打印一个int两位数的大写十六进制数,必要时用零填充.他们还建议使用%n而不是\n字符串末尾的换行符,因为它更独立\r\n于平台(它被转换为Windows).