Check If the Rune is a Letter or not in Golang


There is built-in support for Unicode, including its rune type, in the statically-typed computer language Go. A Unicode code point is represented by a rune, which is the equivalent for the int32 type. There are various methods for determining if a rune is a letter or not in the Go language.

In this article, we'll explore how to check if a rune is a letter or not in Go, and we'll provide examples of how to do that using different techniques.

Why do we need to check If a Rune is a Letter?

A rune in Go is a Unicode code point, which can be a letter or something else entirely. For a number of reasons, it can be crucial to know whether a rune is a letter or not. For instance, depending on whether a rune is a letter or not, you might wish to take different actions while processing text. To make sure that user input only contains letters, you might additionally wish to validate it.

Using the Unicode Package

Go has a built-in unicode package that has types and functions for dealing with Unicode characters. The unicode can be used to determine whether a rune is a letter or not. In the event that a rune is a letter, the IsLetter function returns true; otherwise, it returns false.

Example

In this example, we use the unicode.IsLetter function to check whether the r variable is a letter or not. The function returns true because the r variable contains the letter 'A'.

package main

import (
   "fmt"
   "unicode"
)

func main() {
   r := 'A'
   if unicode.IsLetter(r) {
      fmt.Println("The rune is a letter")
   } else {
      fmt.Println("The rune is not a letter")
   }
}

Output

The rune is a letter

You can also use the unicode.Is function to check if a rune belongs to a specific Unicode category. For example, to check if a rune is a letter or a digit, you can use the unicode.IsLetter and unicode.IsDigit functions together −

Example

In this example, we use the unicode.IsLetter and unicode.IsDigit functions to check whether the r variable is a letter or a digit. The function returns false for unicode.IsLetter and true for unicode.IsDigit because the r variable contains the digit '1'.

package main

import (
   "fmt"
   "unicode"
)

func main() {
   r := '1'
   if unicode.IsLetter(r) {
      fmt.Println("The rune is a letter")
   } else if unicode.IsDigit(r) {
      fmt.Println("The rune is a digit")
   } else {
      fmt.Println("The rune is neither a letter nor a digit")
   }
}

Output

The rune is a digit

Using the Go Programming Language's Built-in Functions

Go provides several built-in functions that you can use to check whether a rune is a letter or not. The most commonly used functions are IsLetter, IsUpper, and IsLower.

Example

In this example, we use the >= and <= operators

package main

import "fmt"

func main() {
   r := 'A'
   if r >= 'A' && r <= 'Z' || r >= 'a' && r <= 'z' {
      fmt.Println("The rune is a letter")
   } else {
      fmt.Println("The rune is not a letter")
   }
}

Output

The rune is a letter

Conclusion

Go provides several ways to check whether a rune is a letter or not. You can use the unicode.IsLetter function from the unicode package or the built-in functions like IsLetter, IsUpper, and IsLower. The choice of which function to use depends on the specific use case and personal preference. By using these techniques, you can easily check whether a rune is a letter or not and perform the appropriate action in your code.

Updated on: 07-Apr-2023

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements