🦁
Go で文字種をチェックする
アルファベット大文字、小文字、その他を判定するサンプル実装
package main
import "fmt"
func main() {
upperA := rune('A')
upperZ := rune('Z')
lowerA := rune('a')
lowerZ := rune('z')
for _, c := range "abcXYZ32あ&" {
if c >= upperA && c <= upperZ {
fmt.Println("大文字アルファベット", string(c))
} else if c >= lowerA && c <= lowerZ {
fmt.Println("小文字アルファベット", string(c))
} else {
fmt.Println("その他の文字", string(c))
}
}
}
種別を文字列から一文字ずつ判定する
package main
import (
"fmt"
"unicode"
)
func main() {
for _, c := range "abcd%23SZXあ後" {
fmt.Printf("For %q:\n", c)
if unicode.IsControl(c) {
fmt.Println("\tis control rune")
}
if unicode.IsDigit(c) {
fmt.Println("\tis digit rune")
}
if unicode.IsGraphic(c) {
fmt.Println("\tis graphic rune")
}
if unicode.IsLetter(c) {
fmt.Println("\tis letter rune")
}
if unicode.IsLower(c) {
fmt.Println("\tis lower case rune")
}
if unicode.IsMark(c) {
fmt.Println("\tis mark rune")
}
if unicode.IsNumber(c) {
fmt.Println("\tis number rune")
}
if unicode.IsPrint(c) {
fmt.Println("\tis printable rune")
}
if !unicode.IsPrint(c) {
fmt.Println("\tis not printable rune")
}
if unicode.IsPunct(c) {
fmt.Println("\tis punct rune")
}
if unicode.IsSpace(c) {
fmt.Println("\tis space rune")
}
if unicode.IsSymbol(c) {
fmt.Println("\tis symbol rune")
}
if unicode.IsTitle(c) {
fmt.Println("\tis title case rune")
}
if unicode.IsUpper(c) {
fmt.Println("\tis upper case rune")
}
}
}
Discussion