touppercase strings golang functions español string go character

strings - ¿Cómo indexar caracteres en una cadena de Golang?



string functions golang (6)

¿Qué tal this ?

fmt.Printf("%c","HELLO"[1])

Como Peter señala, para permitir algo más que ASCII:

fmt.Printf("%c", []rune("HELLO")[1])

¿Cómo obtener una salida "E" en lugar de 69?

package main import "fmt" func main() { fmt.Print("HELLO"[1]) }

¿Funciona Golang para convertir un carácter en byte y viceversa?


Go realmente no tiene un tipo de personaje como tal. el byte se usa a menudo para caracteres ASCII, y la runa se usa para caracteres Unicode, pero ambos son solo alias para tipos enteros (uint8 e int32). Por lo tanto, si desea obligarlos a imprimir como caracteres en lugar de números, debe utilizar Printf("%c", x) . La especificación de formato %c funciona para cualquier tipo de entero.


La solución general para interpretar un char como una cadena es string("HELLO"[1]) .

La solución de Rich también funciona, por supuesto.


Los literales de cadena interpretados son secuencias de caracteres entre comillas dobles "" que usan la codificación UTF-8 (posiblemente multibyte) de caracteres individuales. En UTF-8, los caracteres ASCII son de un solo byte correspondientes a los primeros 128 caracteres Unicode. Las cadenas se comportan como segmentos de bytes. Una runa es un valor entero que identifica un punto de código Unicode. Por lo tanto,

package main import "fmt" func main() { fmt.Println(string("Hello"[1])) // ASCII only fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8 fmt.Println(string([]rune("Hello, 世界")[8])) // UTF-8 }

Salida:

e e 界

Leer:

Vaya a la sección Especificación del lenguaje de programación en Conversions .

El blog Go: cadenas, bytes, runas y personajes en Go


Otra solución para aislar un personaje en una cadena

package main import "fmt" func main() { var word string = "ZbjTS" // P R I N T fmt.Println(word) yo := string([]rune(word)[0]) fmt.Println(yo) //I N D E X x :=0 for x < len(word){ yo := string([]rune(word)[x]) fmt.Println(yo) x+=1 } }

para matrices de cuerdas también:

fmt.Println(string([]rune(sArray[0])[0]))

// = línea comentada


Se puede hacer a través de cortar también

package main import "fmt" func main() { fmt.Print("HELLO"[1:2]) }