30 lines
1021 B
Go
30 lines
1021 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
s := "αβγδεζηθ"
|
|
r := []rune(s)
|
|
n, m := 2, 3
|
|
kc := 'δ' // known character
|
|
ks := "δε" // known string
|
|
// for reference
|
|
fmt.Println("Index: ", "01234567")
|
|
fmt.Println("String:", s)
|
|
// starting from n characters in and of m length
|
|
fmt.Printf("Start %d, length %d: %s\n", n, m, string(r[n:n+m]))
|
|
// starting from n characters in, up to the end of the string
|
|
fmt.Printf("Start %d, to end: %s\n", n, string(r[n:]))
|
|
// whole string minus last character
|
|
fmt.Printf("All but last: %s\n", string(r[:len(r)-1]))
|
|
// starting from a known character within the string and of m length
|
|
dx := strings.IndexRune(s, kc)
|
|
fmt.Printf("Start %q, length %d: %s\n", kc, m, string([]rune(s[dx:])[:m]))
|
|
// starting from a known substring within the string and of m length
|
|
sx := strings.Index(s, ks)
|
|
fmt.Printf("Start %q, length %d: %s\n", ks, m, string([]rune(s[sx:])[:m]))
|
|
}
|