fun hexToRgb(hex: String): Triple<Int, Int, Int> {
var color = hex.removePrefix("#")
if (color.length == 3) {
color = color.flatMap { "$it$it".toList() }.joinToString("")
}
require(color.length == 6) { "Invalid hex color format" }
val r = color.substring(0, 2).toInt(16)
val g = color.substring(2, 4).toInt(16)
val b = color.substring(4, 6).toInt(16)
return Triple(r, g, b)
}
fun main() {
val hexColor1 = "#FFA805"
val (r1, g1, b1) = hexToRgb(hexColor1)
println("RGB: ($r1, $g1, $b1)")
val hexColor2 = "#f00"
val (r2, g2, b2) = hexToRgb(hexColor2)
println("RGB: ($r2, $g2, $b2)")
}
/*
run:
RGB: (255, 168, 5)
RGB: (255, 0, 0)
*/