登录
首页 >  Golang >  Go问答

将数字和字母混合的字符串转换为数字

来源:stackoverflow

时间:2024-04-13 16:54:32 423浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《将数字和字母混合的字符串转换为数字》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我在将包含混合字母和数字的字符串转换为带(或不带)小数的数字时遇到问题。该字符串不一定是 99,50,也可以是任何其他表示数字的字符串。小数点分隔符也可以是 .,而不是

我尝试了以下方法(演示链接):

package main
import (
    "fmt"
    "strconv"
)

func main() {
    price := "99,50 sek"

    res1, _ := strconv.atoi(price)
    fmt.println(res1)

    res2, _ := strconv.parseint(price, 10, 64)
    fmt.println(res2)

    res3, _ := strconv.parsefloat(price, 64)
    fmt.println(res3)
}

我从他们那里得到的输出是这样的:

0

想要的输出是这样的:

99.50

也可以接受的是:

99

解决方案


您可以使用 regexp 包删除字母,并使用 replaceall 和解析将 替换为 .

price := "99,50 SEK"    
reg, _:= regexp.Compile("[^0-9,]+") // regex for digit and comma only
processedString := reg.ReplaceAllString(price , "") // remove all letters 
processedString = strings.ReplaceAll(processedString, ",", ".") // replace comma with point

res3, _ := strconv.ParseFloat(processedString, 64)

演示中的代码here

理论要掌握,实操不能落!以上关于《将数字和字母混合的字符串转换为数字》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>