How to make the first letter of a string lowercase in Go Language?

How to make the first letter of a string lowercase, but not change the case of any of the other letters?

For example:

"Go language is awesome" → "go language is awesome"
"Hello world" → "hello world"


Solution 1: 

package main

import (
"unicode"
"unicode/utf8"
)

// Main function
func main() {

str := "Go language is awesome"
println(firstToLower(str))
}

func firstToLower(s string) string {
if len(s) > 0 {
r, size := utf8.DecodeRuneInString(s)
if r != utf8.RuneError || size > 1 {
lower := unicode.ToLower(r)
if lower != r {
s = string(lower) + s[size:]
}
}
}
return s
}

Output:



Solution 2: Easy

package main

import "strings"

// Main function
func main() {

str := "Go language is awesome"
str = strings.ToLower(string(str[0])) + str[1:]
println(str)
}

Output:



Solution 3: Normal

package main

import (
"unicode"
)

// Main function
func main() {

str := "Go language is awesome"
runes := []rune(str)
if len(runes) > 0 {
runes[0] = unicode.ToLower(runes[0])
}
println(string(runes))
}

Output:

Popular posts from this blog

Learn Java 8 streams with an example - print odd/even numbers from Array and List

Spring boot video streaming example-HTML5

Spring Boot + Mockito simple application with 100% code coverage

Spring Boot + OpenCSV Export Data to CSV Example

Custom Exception Handling in Quarkus REST API

Registration and Login with Spring Boot + Spring Security + Thymeleaf

DataTable-Pagination example with Spring boot, jQuery and ajax

Spring Webflux File Download - REST API Example

Node JS mini projects with source code - free download

ReactJS, Spring Boot JWT Authentication Example