Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ozgio/strutil
String utilities for Go
https://github.com/ozgio/strutil
go golang strings
Last synced: about 2 months ago
JSON representation
String utilities for Go
- Host: GitHub
- URL: https://github.com/ozgio/strutil
- Owner: ozgio
- License: mit
- Created: 2018-08-16T06:56:15.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-05-25T07:15:27.000Z (over 2 years ago)
- Last Synced: 2024-07-31T20:52:22.995Z (4 months ago)
- Topics: go, golang, strings
- Language: Go
- Size: 85.9 KB
- Stars: 203
- Watchers: 4
- Forks: 25
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - strutil - String utilities. (Miscellaneous / Strings)
- zero-alloc-awesome-go - strutil - String utilities. (Miscellaneous / Strings)
- awesome-github-star - strutil
- awesome-go - strutil - String utilities for Go - ★ 34 (Miscellaneous)
- awesome-go-extra - strutil - 08-16T06:56:15Z|2022-05-25T07:15:27Z| (Microsoft Office / Strings)
- awesome-go-zh - strutil
- awesome-go - strutil - 字符串工具库。 (字符串处理库 / 交互工具)
- awesome-go - strutil - 字符串工具库。 (字符串处理库 / 交互工具)
README
String Utilities for Go
=======================
[![GoReportCard](https://goreportcard.com/badge/github.com/ozgio/strutil)](https://goreportcard.com/report/github.com/ozgio/strutil)
[![GoDocs](https://godoc.org/github.com/ozgio/strutil?status.svg)](https://godoc.org/github.com/ozgio/strutil)"strutil" provides string functions for go applications.
For documentation with examples see [GoDoc](https://godoc.org/github.com/ozgio/strutil)
## Functions
### Align ([Docs](https://godoc.org/github.com/ozgio/strutil#Align))
Aligns the text to the specified side```go
strutil.Align("lorem ipsum", strutil.Right, 20) //->" lorem ipsum"
```### AlignCenter ([Docs](https://godoc.org/github.com/ozgio/strutil#AlignCenter))
Aligns the text to the center
```go
strutil.AlignCenter("lorem\nipsum", 10) //->" lorem \n ipsum "
```### AlignLeft ([Docs](https://godoc.org/github.com/ozgio/strutil#AlignLeft))
Aligns the text to the left
```go
strutil.AlignLeft(" lorem \n ipsum ") //->"lorem \nipsum "
```### AlignRight ([Docs](https://godoc.org/github.com/ozgio/strutil#AlignRight))
Aligns the text to the right
```go
strutil.AlignRight("lorem\nipsum", 10) //-> " lorem\n ipsum"
```### CountWords ([Docs](https://godoc.org/github.com/ozgio/strutil#CountWords))
Counts the words
```go
strutil.CountWords("Lorem ipsum, dolor sit amet") //-> "5"
```### DrawBox ([Docs](https://godoc.org/github.com/ozgio/strutil#DrawBox))
Draws a frame around the string with default character set
```go
strutil.DrawBox("Hello World", 20, strutil.Center)
//┌──────────────────┐
//│ Hello World │
//└──────────────────┘
```### DrawCustomBox ([Docs](https://godoc.org/github.com/ozgio/strutil#DrawCustomBox))
Draws a frame around the string with custom character set
```go
strutil.DrawCustomBox("Hello World", 20, strutil.Center, strutil.SimpleBox9Slice(), "\n")
//┌──────────────────┐
//│ Hello World │
//└──────────────────┘
```### ExpandTabs ([Docs](https://godoc.org/github.com/ozgio/strutil#ExpandTabs))
Converts tabs to the spaces
```go
strutil.ExpandTabs("\tlorem\n\tipsum\n", 2) //-> " lorem\n ipsum\n"
```### Indent ([Docs](https://godoc.org/github.com/ozgio/strutil#Indent))
Indents every line
```go
strutil.Indent("lorem\nipsum", "> ") //-> "> lorem\n> ipsum"
```### IsASCII ([Docs](https://godoc.org/github.com/ozgio/strutil#IsASCII))
Checks if all the characters in string are in standard ASCII table
```go
strutil.IsASCII("lorem\nipsum") //-> true
```### Len ([Docs](https://godoc.org/github.com/ozgio/strutil#Len))
Alias of utf8.RuneCountInString which returns the number of runes in string
```go
strutil.Len("böt") //-> "3"
```### MapLines ([Docs](https://godoc.org/github.com/ozgio/strutil#MapLines))
Runs function fn on every line of the string
```go
strutil.MapLines(" lorem \n ipsum ", strings.TrimSpace) //-> "lorem\nipsum"
```### OSNewLine ([Docs](https://godoc.org/github.com/ozgio/strutil#OSNewLine))
OSNewLine returns operating systems default new line character
```go
strutil.OSNewLine() //-> "\n"
```### Pad ([Docs](https://godoc.org/github.com/ozgio/strutil#Pad))
Left and right pads the string
```go
strutil.Pad("lorem", 11, "->", "<-") //-> "->->lorem<-<-"
```### PadLeft ([Docs](https://godoc.org/github.com/ozgio/strutil#PadLeft))
Left pads the string
```go
strutil.PadLeft("lorem", 9, "->") //-> "->->lorem"
```### PadRight ([Docs](https://godoc.org/github.com/ozgio/strutil#PadRight))
Right pads the string
```go
strutil.PadRight("lorem", 9, "<-") //-> "lorem<-<-"
```### Random ([Docs](https://godoc.org/github.com/ozgio/strutil#Random))
Creates a random string from a character set
```go
strutil.Random("abcdefghi", 10) //-> "aciafbeafg"
```### RemoveAccents ([Docs](https://godoc.org/github.com/ozgio/strutil#RemoveAccents))
Convert accented letters to ascii counterparts
```go
strutil.RemoveAccents("résumé") //-> "resume"
```### ReplaceAllToOne ([Docs](https://godoc.org/github.com/ozgio/strutil#ReplaceAllToOne))
Replace all substrings in the text with the specified string
```go
strutil.ReplaceAllToOne("lorem ipsum", []string{"o","e","i","u"}, ".") //-> "l.r.m .ps.m"
```### Reverse ([Docs](https://godoc.org/github.com/ozgio/strutil#Reverse))
Reverses the string
```go
strutil.Reverse("lorem") //-> "merol"
```### Splice ([Docs](https://godoc.org/github.com/ozgio/strutil#Splice))
Replaces a part of the string
```go
strutil.Splice("lorem", "-x-", 2, 3) //-> "lo-x-em"
```### SplitAndMap ([Docs](https://godoc.org/github.com/ozgio/strutil#SplitAndMap))
Splits the string and runs the function fn on every part
```go
strutil.MapLines("lorem-ipsum-dolor", "-", strutil.Reverse) //-> "merol\nmuspi\nrolod"
```### Slugify ([Docs](https://godoc.org/github.com/ozgio/strutil#Slugify))
Converts the string to a slug
```go
strutil.Slugify("Lorem ipsum, dolör") //-> "lorem-ipsum-dolor"
```### SlugifySpecial ([Docs](https://godoc.org/github.com/ozgio/strutil#SlugifySpecial))
Converts the string to a slug with custom delimiter.
```go
strutil.SlugifySpecial("Lorem ipsum, dolör", "_") //-> "lorem_ipsum_dolor"
```### SplitCamelCase ([Docs](https://godoc.org/github.com/ozgio/strutil#SplitCamelCase))
Splits the words in a camelCase string
```go
strutil.SplitCamelCase("loremIpsum") //-> []string{"lorem", "Ipsum"}
```### Substring ([Docs](https://godoc.org/github.com/ozgio/strutil#SafeSubstring))
Gets a part of the string without panics
```go
strutil.SafeSubstring("lorem", 0, 1) //-> "l"
```### MustSubstring ([Docs](https://godoc.org/github.com/ozgio/strutil#Substring))
Gets a part of the string
```go
strutil.Substring("lorem", 0, 1) //-> "l"
```### Summary ([Docs](https://godoc.org/github.com/ozgio/strutil#Summary))
Cuts the string to the specified length
```go
strutil.Summary("Lorem ipsum dolor sit amet", 10, "...") //-> "lorem ipsum..."
```### Tile ([Docs](https://godoc.org/github.com/ozgio/strutil#Tile))
Repeats the pattern until the result reaches the 'length'
```go
strutil.Tile("-৹", 4) //-> "-৹-৹"
```### ToSnakeCase ([Docs](https://godoc.org/github.com/ozgio/strutil#ToSnakeCase))
Converts the string to snake_case
```go
strutil.ToSnakeCase("Snake Case") //-> "snake_case"
```### ToCamelCase ([Docs](https://godoc.org/github.com/ozgio/strutil#ToCamelCase))
Converts the string to camelCase
```go
strutil.ToCamelCase("Camel Case") //-> "camelCase"
```### Words ([Docs](https://godoc.org/github.com/ozgio/strutil#Words))
Returns the words inside the text
```go
strutil.Words("Lorem ipsum, dolor sit amet") //-> []string{"Lorem", "ipsum", "dolor", "sit", "amet"}
```### WordWrap ([Docs](https://godoc.org/github.com/ozgio/strutil#WordWrap))
Wraps the lines in the text
```go
strutil.WordWrap("Lorem ipsum dolor sit amet", 15, false) //-> "Lorem ipsum\ndolor sit amet"
```## Install
Prequsities:
- Go 1.10+Install with
```sh
go get github.com/ozgio/strutil
```