forked from an/flokati
60 lines
1020 B
Go
60 lines
1020 B
Go
// vi:ts=4:sts=4:sw=4:noet:tw=72
|
|
|
|
package util
|
|
|
|
import (
|
|
"bytes"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func ToInt(v interface{}) int {
|
|
switch v.(type) {
|
|
case int:
|
|
return v.(int)
|
|
case float64:
|
|
return int(v.(float64))
|
|
case string:
|
|
ret, _ := strconv.Atoi(v.(string))
|
|
return ret
|
|
default:
|
|
return 0
|
|
}
|
|
}
|
|
|
|
func NumberToString(n int, sep rune) string {
|
|
start := 0
|
|
var buf bytes.Buffer
|
|
|
|
s := strconv.Itoa(n)
|
|
if n < 0 {
|
|
start = 1
|
|
buf.WriteByte('-')
|
|
}
|
|
l := len(s)
|
|
ci := 3 - ((l - start) % 3)
|
|
if ci == 3 {
|
|
ci = 0
|
|
}
|
|
for i := start; i < l; i++ {
|
|
if ci == 3 {
|
|
buf.WriteRune(sep)
|
|
ci = 0
|
|
}
|
|
ci++
|
|
buf.WriteByte(s[i])
|
|
}
|
|
return buf.String()
|
|
}
|
|
|
|
func ReplaceUmlauts(s string) (ret string) {
|
|
ret := strings.Replace(s, "Ä", "Ae", -1)
|
|
ret = strings.Replace(ret, "Ö", "Oe", -1)
|
|
ret = strings.Replace(ret, "Ü", "Ue", -1)
|
|
ret = strings.Replace(ret, "ä", "ae", -1)
|
|
ret = strings.Replace(ret, "ö", "oe", -1)
|
|
ret = strings.Replace(ret, "ü", "ue", -1)
|
|
ret = strings.Replace(ret, "ß", "ss", -1)
|
|
return
|
|
}
|