如何用字母和数字值标记字符串



我有一个字符串,类似于"test123abc45alsdkfj";,我想让我的扫描仪先读取"test",然后读取123,再读取"abc",最后读取45,然后读取"alsdkfj"。有点像C++中的字符串流,有办法做到这一点吗?谢谢

我认为有一种简单的方法,希望它能帮助你

package main
import (
"fmt"
"strings"
"text/scanner"
)
func isDigit(c byte) bool {
if c >= 48 && c <= 57 {
return true
}
return false
}
func main() {
const src = `test123abc45alsdkfj`
var s scanner.Scanner
s.Init(strings.NewReader(src))
for tok := s.Scan(); tok != scanner.EOF; tok = s.Scan() {
chars := s.TokenText()
temp := string(chars[0])
for i := range chars {
if i > 0 {
if isDigit(chars[i]) != isDigit(chars[i-1]) {
fmt.Println(temp)
temp = string(chars[i])
} else {
temp += string(chars[i])
}
}
}
}
}

并且输出将是

test
123
abc
45

相关内容

  • 没有找到相关文章

最新更新