Golang : Test input string for unicode example
Problem:
You are trying to create a slightly different solution for user that use unicode and you want to test if an input string has unicode characters within? How to do that?
Solution:
Measure the input string twice. Once with len()
function and another with utf8.RuneCountInString()
function. If both length is the same, then there is no unicode detected within the input string.
Here you go!
package main
import (
"bufio"
"fmt"
"os"
"strings"
"unicode/utf8"
)
// test to see if the input string has unicode
func testStringForUnicode(s string) bool {
a := len(s)
b := utf8.RuneCountInString(s)
if a == b {
return false
} else {
return true
}
}
func main() {
fmt.Println("Enter a word, phrase or number : ")
consoleReader := bufio.NewReader(os.Stdin)
answer, _ := consoleReader.ReadString('\n')
// get rid of the extra newline character from ReadString() function
answer = strings.TrimSuffix(answer, "\n")
fmt.Println(answer, " have unicode characters ? ", testStringForUnicode(answer))
}
Sample output:
Enter a string with or without unicode :
fuß is german language for foot
fuß is german language for foot have unicode characters ? true
Enter a string with or without unicode :
foot is english language for foot
foot is english language for foot have unicode characters ? false
See also : Golang : Handle Palindrome string with case sensitivity and unicode
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+9.1k Fix ERROR 1045 (28000): Access denied for user 'root'@'ip-address' (using password: YES)
+6.5k Golang : Detect sample rate, channels or latency with PortAudio
+5.2k Golang : Create new color from command line parameters
+17.1k Golang : How to get hour, minute, second from time?
+8.3k Golang : How to generate Code 39 barcode?
+40.2k Golang : Convert string to array/slice
+29.9k Golang : Example for ECDSA(Elliptic Curve Digital Signature Algorithm) package functions
+6.6k Gogland : Single File versus Go Application Run Configurations
+20.6k Golang : Setting up/configure AWS credentials with official aws-sdk-go
+14.1k Golang : How do I get the local IP (non-loopback) address ?
+7.5k Golang : How to capture return values from goroutines?
+19.7k Curl usage examples with Golang