Golang : Get all upper case or lower case characters from string example
Problem:
You have a string and you want to get all the uppercase characters in the string. For example, you want to get the characters of A,O and H from the string "Ace Of Hearts" and use the AOH
to make a key for your string map. How to do that?
Solution:
Use unicode.IsLower()
function to determine if the character is lowercase or not. If not, then push the characters into a slice or form a string with strings.Join()
function.
Here you go!
package main
import (
"fmt"
"regexp"
"strings"
"text/scanner"
"unicode"
)
// faster way to get rid delimiters
// for string without unicode
func removeDelimString(str string) string {
// alphanumeric (== [0-9A-Za-z])
// \s is a white space character
regExp := regexp.MustCompile(`[^[:alnum:]\s]`)
return regExp.ReplaceAllString(str, "")
}
// get all upper case characters from string
// to get all lower case characters, just remove the exclamation mark !
// infront of unicode.IsLower()
func getUpperCaseChars(str string) []string {
tokens := removeDelimString(str)
var result []string
for _, char := range tokens {
if !unicode.IsLower(char) && char != ' ' {
fmt.Println(scanner.TokenString(char))
result = append(result, scanner.TokenString(char))
}
}
return result
}
func main() {
str := "This a string with some UpperCase Characters."
temp := getUpperCaseChars(str)
for k, v := range temp {
fmt.Println(k, v)
}
// form into a UPPERCASE string
upper := removeDelimString(strings.Join(temp, ""))
fmt.Println(upper)
}
Output:
"T"
"U"
"C"
"C"
0 "T"
1 "U"
2 "C"
3 "C"
TUCC
References:
https://www.socketloop.com/tutorials/golang-how-to-join-strings
https://golang.org/pkg/unicode/#IsLower
https://socketloop.com/tutorials/golang-break-string-into-a-slice-of-characters-example
See also : Golang : Break string into a slice of characters example
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
+7.3k Golang : Use modern ciphers only in secure connection
+10.2k Golang : Find and replace data in all files recursively
+13.6k Facebook PHP getUser() returns 0
+11.6k Golang : Change date format to yyyy-mm-dd
+8.6k Golang : How to check variable or object type during runtime?
+6k AWS S3 : Prevent Hotlinking policy
+9.1k Golang : Build and compile multiple source files
+10.6k RPM : error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
+11.9k Golang : GTK Input dialog box examples
+39.8k Golang : Remove dashes(or any character) from string
+9.3k Golang : How to check if a string with spaces in between is numeric?
+6.6k Golang : Convert an executable file into []byte example