Golang - 将字符串拆分成最多 N 个部分?
Golang - split string into at most N parts?
代码与问题
// parse request,
parts := strings.Split(message, ",")
uuid := parts[0]
data := parts[1]
上面的代码将 message
拆分为 ,
,我实际上想要 2 个部分。
但是data部分本身可能包含,
,所以可能会拆分成2个以上的部分
例如
我想拆分字符串:
"19177360-2765-4597-a58e-519783a0d51d,a,b,c"
进入:
["19177360-2765-4597-a58e-519783a0d51d"
, "a,b,c"
]
不是:
["19177360-2765-4597-a58e-519783a0d51d"
、"a"
、"b"
、"c"
]
可能的解决方案
和strings.Split(message, ",")
,它分成了4个部分。
我可以先搜索 ,
,然后手动获取子字符串。
问题
但是有没有一个方便的函数来指定最大 N
部分将字符串拆分成。
Java
有String
这样的内置方法,string
有没有类似的Go
库?
谢谢。
strings.SplitN
是你要的函数,第三个参数是你要拆分的部分数:
arrayString := strings.SplitN(message, ",", 2)
// arrayString[0] = 19177360-2765-4597-a58e-519783a0d51d
// arrayString[1] = a,b,c
代码与问题
// parse request,
parts := strings.Split(message, ",")
uuid := parts[0]
data := parts[1]
上面的代码将 message
拆分为 ,
,我实际上想要 2 个部分。
但是data部分本身可能包含,
,所以可能会拆分成2个以上的部分
例如
我想拆分字符串:
"19177360-2765-4597-a58e-519783a0d51d,a,b,c"
进入:
["19177360-2765-4597-a58e-519783a0d51d"
, "a,b,c"
]
不是:
["19177360-2765-4597-a58e-519783a0d51d"
、"a"
、"b"
、"c"
]
可能的解决方案
和strings.Split(message, ",")
,它分成了4个部分。
我可以先搜索 ,
,然后手动获取子字符串。
问题
但是有没有一个方便的函数来指定最大 N
部分将字符串拆分成。
Java
有String
这样的内置方法,string
有没有类似的Go
库?
谢谢。
strings.SplitN
是你要的函数,第三个参数是你要拆分的部分数:
arrayString := strings.SplitN(message, ",", 2)
// arrayString[0] = 19177360-2765-4597-a58e-519783a0d51d
// arrayString[1] = a,b,c