usar tripa tension tenis raquetas raqueta que para natural multifilamento hibrido federer encordar encordado debo cuerdas cambio scala

scala - tripa - que tension debo usar en mi raqueta



Cuerda Hexagonal a Int, Corta y Larga en Scala (5)

¿Qué pasa con una sola línea?

def hexToInt(s: String): Int = { s.toList.map("0123456789abcdef".indexOf(_)).reduceLeft(_ * 16 + _) } scala> hexToInt("cafe") res0: Int = 51966

Y para contestar tu segundo item:

¿Hay algo como "A" .toInt (base)?

Sí, todavía como una sola línea:

def baseToInt(s: String, base: String): Int = { s.toList.map(base.indexOf(_)).reduceLeft(_ * base.length + _) } scala> baseToInt("1100", "01") res1: Int = 12

Simplemente no se puede encontrar una manera de transformar una cadena hexagonal en un número (Int, Long, Short) en Scala.

¿Hay algo como "A".toInt(base) ?


Cualquiera que desee convertir un UUID de hex a un número decimal puede tomar prestado de la respuesta de Benoit y usar BigDecimal para el trabajo:

scala> "03cedf84011dd11e38ff0800200c9a66".toList.map( | "0123456789abcdef".indexOf(_)).map( | BigInt(_)).reduceLeft( _ * 16 + _) res0: scala.math.BigInt = 5061830576017519706280227473241971302

O más generalmente:

def hex2dec(hex: String): BigInt = { hex.toLowerCase().toList.map( "0123456789abcdef".indexOf(_)).map( BigInt(_)).reduceLeft( _ * 16 + _) } def uuid2dec(uuid: UUID): BigInt = { hex2dec(uuid.toString.replace("-","")) }

Entonces:

scala> import java.util.UUID scala> val id = UUID.fromString("3CEDF84-011D-D11E-38FF-D0800200C9A66") id: java.util.UUID = 03cedf84-011d-d11e-38ff-0800200c9a66 scala> uuid2dec(id) res2: BigInt = 5061830576017519706280227473241971302

Una aplicación práctica para esto es codificar el UUID en un código de barras, donde Code128 produce un código de barras más corto para todos los dígitos que para las cadenas alfanuméricas. Consulte las notas sobre el subtipo "128A" en http://en.wikipedia.org/wiki/Code128#Subtypes .


La respuesta de 7zark7 es correcta, pero quiero hacer algunas adiciones. Implícito de String a Int puede ser peligroso. En su lugar, puede utilizar la conversión implícita para envolver y llamar explícitamente el análisis:

class HexString(val s: String) { def hex = Integer.parseInt(s, 16) } implicit def str2hex(str: String): HexString = new HexString(str) val num: Int = "CAFE".hex


Para Largo y Corto, también es posible usar los métodos Java directamente como

Long2long(java.lang.Long.valueOf(hexString, 16))

donde Long2long puede incluso omitirse en algunos casos.


Puedes usar las librerías de Java:

val number = Integer.parseInt("FFFF", 16) > number: Int = 65535

O si te sientes chispeante :-):

implicit def hex2int (hex: String): Int = Integer.parseInt(hex, 16) val number: Int = "CAFE" // <- behold the magic number: Int = 51966

-

Edición: TAMBIÉN, si no está específicamente tratando de analizar un parámetro String en hexadecimal, tenga en cuenta que Scala admite directamente literales enteros hexadecimales. En este caso:

val x = 0xCAFE > x: Int = 51966

¿No es Scala maravilloso? :-)