为了账号安全,请及时绑定邮箱和手机立即绑定

strings.Split 表现得很奇怪

strings.Split 表现得很奇怪

Go
弑天下 2021-12-20 15:53:49
我正在做一个简单的 strings.Split 日期。格式是 2015-10-04month := strings.Split(date, "-")输出是[2015 10 03]。如果我这样做,month[0]它会返回 2015 年,但是当我做月份 [1] 时,它会返回panic: runtime error: index out of range虽然显然不是。我用错了吗?知道发生了什么吗?
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

这是一个完整的工作示例:


package main


import "strings"


func main() {

    date := "2015-01-02"

    month := strings.Split(date, "-")

    println(month[0])

    println(month[1])

    println(month[2])

}

输出:


2015

01

02

操场


也许您没有使用正确的“破折号”字符? 有很多:


+-------+--------+----------+

| glyph |       codes       |

+-------+--------+----------+

| -     | U+002D | -    |

| ֊     | U+058A | ֊  |

| ־     | U+05BE | ־  |

| ᠆     | U+1806 | ᠆  |

| ‐     | U+2010 | ‐  |

| ‑     | U+2011 | ‑  |

| ‒     | U+2012 | ‒  |

| –     | U+2013 | –  |

| —     | U+2014 | —  |

| ―     | U+2015 | ―  |

| ⁻     | U+207B | ⁻  |

| ₋     | U+208B | ₋  |

| −     | U+2212 | −  |

| ﹘     | U+FE58 | ﹘ |

| ﹣     | U+FE63 | ﹣ |

| -     | U+FF0D | - |

+-------+--------+----------+

这是具有不同输入字符串的代码,它也会引发索引越界异常:


包主


import "strings"


func main() {

    date := "2015‐01‐02" // U+2010 dashes

    month := strings.Split(date, "-")

    println(month[0])

    println(month[1])

    println(month[2])

}


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信