123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- // Copyright 2015 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package unicode_test
- import (
- "fmt"
- "unicode"
- )
- // Functions starting with "Is" can be used to inspect which table of range a
- // rune belongs to. Note that runes may fit into more than one range.
- func Example_is() {
- // constant with mixed type runes
- const mixed = "\b5Ὂg̀9! ℃ᾭG"
- for _, c := range mixed {
- 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")
- }
- }
- // Output:
- // For '\b':
- // is control rune
- // is not printable rune
- // For '5':
- // is digit rune
- // is graphic rune
- // is number rune
- // is printable rune
- // For 'Ὂ':
- // is graphic rune
- // is letter rune
- // is printable rune
- // is upper case rune
- // For 'g':
- // is graphic rune
- // is letter rune
- // is lower case rune
- // is printable rune
- // For '̀':
- // is graphic rune
- // is mark rune
- // is printable rune
- // For '9':
- // is digit rune
- // is graphic rune
- // is number rune
- // is printable rune
- // For '!':
- // is graphic rune
- // is printable rune
- // is punct rune
- // For ' ':
- // is graphic rune
- // is printable rune
- // is space rune
- // For '℃':
- // is graphic rune
- // is printable rune
- // is symbol rune
- // For 'ᾭ':
- // is graphic rune
- // is letter rune
- // is printable rune
- // is title case rune
- // For 'G':
- // is graphic rune
- // is letter rune
- // is printable rune
- // is upper case rune
- }
- func ExampleSimpleFold() {
- fmt.Printf("%#U\n", unicode.SimpleFold('A')) // 'a'
- fmt.Printf("%#U\n", unicode.SimpleFold('a')) // 'A'
- fmt.Printf("%#U\n", unicode.SimpleFold('K')) // 'k'
- fmt.Printf("%#U\n", unicode.SimpleFold('k')) // '\u212A' (Kelvin symbol, K)
- fmt.Printf("%#U\n", unicode.SimpleFold('\u212A')) // 'K'
- fmt.Printf("%#U\n", unicode.SimpleFold('1')) // '1'
- // Output:
- // U+0061 'a'
- // U+0041 'A'
- // U+006B 'k'
- // U+212A 'K'
- // U+004B 'K'
- // U+0031 '1'
- }
- func ExampleTo() {
- const lcG = 'g'
- fmt.Printf("%#U\n", unicode.To(unicode.UpperCase, lcG))
- fmt.Printf("%#U\n", unicode.To(unicode.LowerCase, lcG))
- fmt.Printf("%#U\n", unicode.To(unicode.TitleCase, lcG))
- const ucG = 'G'
- fmt.Printf("%#U\n", unicode.To(unicode.UpperCase, ucG))
- fmt.Printf("%#U\n", unicode.To(unicode.LowerCase, ucG))
- fmt.Printf("%#U\n", unicode.To(unicode.TitleCase, ucG))
- // Output:
- // U+0047 'G'
- // U+0067 'g'
- // U+0047 'G'
- // U+0047 'G'
- // U+0067 'g'
- // U+0047 'G'
- }
- func ExampleToLower() {
- const ucG = 'G'
- fmt.Printf("%#U\n", unicode.ToLower(ucG))
- // Output:
- // U+0067 'g'
- }
- func ExampleToTitle() {
- const ucG = 'g'
- fmt.Printf("%#U\n", unicode.ToTitle(ucG))
- // Output:
- // U+0047 'G'
- }
- func ExampleToUpper() {
- const ucG = 'g'
- fmt.Printf("%#U\n", unicode.ToUpper(ucG))
- // Output:
- // U+0047 'G'
- }
- func ExampleSpecialCase() {
- t := unicode.TurkishCase
- const lci = 'i'
- fmt.Printf("%#U\n", t.ToLower(lci))
- fmt.Printf("%#U\n", t.ToTitle(lci))
- fmt.Printf("%#U\n", t.ToUpper(lci))
- const uci = 'İ'
- fmt.Printf("%#U\n", t.ToLower(uci))
- fmt.Printf("%#U\n", t.ToTitle(uci))
- fmt.Printf("%#U\n", t.ToUpper(uci))
- // Output:
- // U+0069 'i'
- // U+0130 'İ'
- // U+0130 'İ'
- // U+0069 'i'
- // U+0130 'İ'
- // U+0130 'İ'
- }
- func ExampleIsDigit() {
- fmt.Printf("%t\n", unicode.IsDigit('৩'))
- fmt.Printf("%t\n", unicode.IsDigit('A'))
- // Output:
- // true
- // false
- }
- func ExampleIsNumber() {
- fmt.Printf("%t\n", unicode.IsNumber('Ⅷ'))
- fmt.Printf("%t\n", unicode.IsNumber('A'))
- // Output:
- // true
- // false
- }
- func ExampleIsLetter() {
- fmt.Printf("%t\n", unicode.IsLetter('A'))
- fmt.Printf("%t\n", unicode.IsLetter('7'))
- // Output:
- // true
- // false
- }
- func ExampleIsLower() {
- fmt.Printf("%t\n", unicode.IsLower('a'))
- fmt.Printf("%t\n", unicode.IsLower('A'))
- // Output:
- // true
- // false
- }
- func ExampleIsUpper() {
- fmt.Printf("%t\n", unicode.IsUpper('A'))
- fmt.Printf("%t\n", unicode.IsUpper('a'))
- // Output:
- // true
- // false
- }
- func ExampleIsTitle() {
- fmt.Printf("%t\n", unicode.IsTitle('Dž'))
- fmt.Printf("%t\n", unicode.IsTitle('a'))
- // Output:
- // true
- // false
- }
- func ExampleIsSpace() {
- fmt.Printf("%t\n", unicode.IsSpace(' '))
- fmt.Printf("%t\n", unicode.IsSpace('\n'))
- fmt.Printf("%t\n", unicode.IsSpace('\t'))
- fmt.Printf("%t\n", unicode.IsSpace('a'))
- // Output:
- // true
- // true
- // true
- // false
- }
|