go基础库之文本样式转换

栏目: Go · 发布时间: 6年前

内容简介:在很多实际工作中,文本样式转换是最常用的方法,比如大小写转换,首字母大写,蛇形命名法,驼峰命名法等。

在很多实际工作中,文本样式转换是最常用的方法,比如大小写转换,首字母大写,蛇形命名法,驼峰命名法等。

文本样式转换

Golang 版本

1.12.1

前言

在很多实际工作中,文本样式转换是最常用的方法,比如大小写转换,首字母大写,蛇形命名法,驼峰命名法等。

实现

创建文件 case.go ,代码如下:

package main

import (
	"fmt"
	"strings"
	"unicode"
)

const email = "ExamPle@domain.com"
const name = "isaac newton"
const upc = "upc"
const i = "i"

const snakeCase = "first_name"

func main() {

	// 为了比较用户输入,有时最好在相同的情况下比较输入
	input := "Example@domain.com"
	input = strings.ToLower(input)
	emailToCompare := strings.ToLower(email)
	matches := input == emailToCompare
	fmt.Printf("Email matches: %t\n", matches)

	upcCode := strings.ToUpper(upc)
	fmt.Println("UPPER case: " + upcCode)

	// 这个有向图有不同的大写字母和标题
	str := "dz"
	fmt.Printf("%s in upper: %s and title: %s \n", str,
		strings.ToUpper(str), strings.ToTitle(str))

	// 使用XXXSpecial功能
	title := strings.ToTitle(i)
	titleTurk := strings.ToTitleSpecial(unicode.TurkishCase, i)
	if title != titleTurk {
		fmt.Printf("ToTitle is defferent: %#U vs. %#U \n",
			title[0], []rune(titleTurk)[0])
	}

	// 在某些情况下,需要纠正输入以防万一
	correctNameCase := strings.Title(name)
	fmt.Println("Corrected name: " + correctNameCase)

	// 使用Title和ToLower函数将蛇形命名法转换为驼峰命名法
	firstNameCamel := toCamelCase(snakeCase)
	fmt.Println("Camel case: " + firstNameCamel)

}

func toCamelCase(input string) string {
	titleSpace := strings.Title(strings.Replace(input, "_", " ", -1))
	camel := strings.Replace(titleSpace, " ", "", -1)
	return strings.ToLower(camel[:1]) + camel[1:]
}
$ go run case.go
Email matches: true
UPPER case: UPC
dz in upper: DZ and title: Dz 
ToTitle is defferent: U+0049 'I' vs. U+0130 'İ' 
Corrected name: Isaac Newton
Camel case: firstName

原理

注意Unicode中的标题大小写映射与大写字母映射不同。不同之处在于字符的数量需要特殊处理。这些主要是连接符和有向图,如 fl , dz , and lj ,加上一些多音体希腊字符。例如, U+01C7 (LJ) 映射到 U+01C8 (Lj) 而不是 U+01C9 (lj)

为了正确区分大小写,应该使用 string 包中的 EqualFold 函数。这个函数使用case折叠对字符串进行规范化并比较它们。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算复杂性

计算复杂性

阿罗拉 巴拉克 / 骆吉洲 / 机械工业出版社 / 2016-1-1 / 129元

《计算复杂性的现代方法》是一部将所有有关复杂度知识理论集于一体的教程。将最新进展和经典结果结合起来,是一部很难得的研究生入门级教程。既是相关科研人员的一部很好的参考书,也是自学人员很难得的一本很好自学教程。本书一开始引入该领域的最基本知识,然后逐步深入,介绍更多深层次的结果,每章末都附有练习。对复杂度感兴趣的人士,物理学家,数学家以及科研人员这本书都是相当受益。一起来看看 《计算复杂性》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具