• Stars
    star
    1,398
  • Rank 33,617 (Top 0.7 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 10 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Implements string functions widely used in other languages but absent in Go.

xstrings

Build Status Go Doc Go Report Coverage Status

Go package xstrings is a collection of string functions, which are widely used in other languages but absent in Go package strings.

All functions are well tested and carefully tuned for performance.

Propose a new function

Please review contributing guideline and create new issue to state why it should be included.

Install

Use go get to install this library.

go get github.com/huandu/xstrings

API document

See GoDoc for full document.

Function list

Go functions have a unique naming style. One, who has experience in other language but new in Go, may have difficulties to find out right string function to use.

Here is a list of functions in strings and xstrings with enough extra information about how to map these functions to their friends in other languages. Hope this list could be helpful for fresh gophers.

Package xstrings functions

Keep this table sorted by Function in ascending order.

Function Friends #
Center str.center in Python; String#center in Ruby #30
Count String#count in Ruby #16
Delete String#delete in Ruby #17
ExpandTabs str.expandtabs in Python #27
FirstRuneToLower lcfirst in PHP or Perl #15
FirstRuneToUpper String#capitalize in Ruby; ucfirst in PHP or Perl #15
Insert String#insert in Ruby #18
LastPartition str.rpartition in Python; String#rpartition in Ruby #19
LeftJustify str.ljust in Python; String#ljust in Ruby #28
Len mb_strlen in PHP #23
Partition str.partition in Python; String#partition in Ruby #10
Reverse String#reverse in Ruby; strrev in PHP; reverse in Perl #7
RightJustify str.rjust in Python; String#rjust in Ruby #29
RuneWidth - #27
Scrub String#scrub in Ruby #20
Shuffle str_shuffle in PHP #13
ShuffleSource str_shuffle in PHP #13
Slice mb_substr in PHP #9
Squeeze String#squeeze in Ruby #11
Successor String#succ or String#next in Ruby #22
SwapCase str.swapcase in Python; String#swapcase in Ruby #12
ToCamelCase String#camelize in RoR #1
ToKebab - #41
ToSnakeCase String#underscore in RoR #1
Translate str.translate in Python; String#tr in Ruby; strtr in PHP; tr/// in Perl #21
Width mb_strwidth in PHP #26
WordCount str_word_count in PHP #14
WordSplit - #14

Package strings functions

Keep this table sorted by Function in ascending order.

Function Friends
Contains String#include? in Ruby
ContainsAny -
ContainsRune -
Count str.count in Python; substr_count in PHP
EqualFold stricmp in PHP; String#casecmp in Ruby
Fields str.split in Python; split in Perl; String#split in Ruby
FieldsFunc -
HasPrefix str.startswith in Python; String#start_with? in Ruby
HasSuffix str.endswith in Python; String#end_with? in Ruby
Index str.index in Python; String#index in Ruby; strpos in PHP; index in Perl
IndexAny -
IndexByte -
IndexFunc -
IndexRune -
Join str.join in Python; Array#join in Ruby; implode in PHP; join in Perl
LastIndex str.rindex in Python; String#rindex; strrpos in PHP; rindex in Perl
LastIndexAny -
LastIndexFunc -
Map String#each_codepoint in Ruby
Repeat operator * in Python and Ruby; str_repeat in PHP
Replace str.replace in Python; String#sub in Ruby; str_replace in PHP
Split str.split in Python; String#split in Ruby; explode in PHP; split in Perl
SplitAfter -
SplitAfterN -
SplitN str.split in Python; String#split in Ruby; explode in PHP; split in Perl
Title str.title in Python
ToLower str.lower in Python; String#downcase in Ruby; strtolower in PHP; lc in Perl
ToLowerSpecial -
ToTitle -
ToTitleSpecial -
ToUpper str.upper in Python; String#upcase in Ruby; strtoupper in PHP; uc in Perl
ToUpperSpecial -
Trim str.strip in Python; String#strip in Ruby; trim in PHP
TrimFunc -
TrimLeft str.lstrip in Python; String#lstrip in Ruby; ltrim in PHP
TrimLeftFunc -
TrimPrefix -
TrimRight str.rstrip in Python; String#rstrip in Ruby; rtrim in PHP
TrimRightFunc -
TrimSpace str.strip in Python; String#strip in Ruby; trim in PHP
TrimSuffix String#chomp in Ruby; chomp in Perl

License

This library is licensed under MIT license. See LICENSE for details.

More Repositories

1

go-sqlbuilder

A flexible and powerful SQL string builder library plus a zero-config ORM.
Go
1,445
star
2

facebook

A Facebook Graph API SDK For Go.
Go
1,330
star
3

skiplist

Fast and easy-to-use skip list for Go.
Go
375
star
4

go-clone

Clone any Go data structure deeply and thoroughly.
Go
302
star
5

go-tls

A bit safer approach to implement Thread Local Storage (TLS) for Go 1.7+.
Go
162
star
6

goroutine

[DEPRECATED] Expose goroutine id to wild world. Alternative approach is https://github.com/huandu/go-tls
Go
111
star
7

go-assert

Magic assert macros for Go.
Go
27
star
8

gin

gin - a simple & efficient HTML5 game engine
JavaScript
25
star
9

node-ascii85

Ascii85 (Base85) encoding/decoding module for node.js.
JavaScript
18
star
10

ObjCMixin

A ruby-like mixin in Object-C.
Objective-C
10
star
11

gin-samples

Samples using the gin
JavaScript
9
star
12

spritemapper

A Java program which creates sprite maps (or sprite sheets) from a set of input images.
Java
9
star
13

nocycle.js

Detect cycle `require` in node.js.
JavaScript
9
star
14

go-magicstring

Attach arbitrary data to a Go string
Go
7
star
15

handyhttpd

A handy http server to enable public http access on any folder within a few seconds.
Go
6
star
16

yuki

A flexible and efficient mysql client written in C
C
5
star
17

bashtools

Several bash scripts to make life easier
Shell
3
star
18

go-singleton

Generic singleton for Go.
Go
2
star
19

heybox-url

Calculate Heybox url hash.
JavaScript
2
star
20

node-facter

A wrapper for puppet `facter` tool
JavaScript
2
star
21

express-handler

Provide a per-request `this` object for express router handlers.
JavaScript
1
star
22

design-doc-chs

1
star