3 回答
TA贡献1874条经验 获得超12个赞
内置strings包中有一个名为Title.
请参阅https://play.golang.org/p/07dl3hMuGH
s := "INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"
fmt.Println(strings.Title(strings.ToLower(s)))
https://play.golang.org/p/GLMVV10-4eX
TA贡献1797条经验 获得超4个赞
您可以为此任务使用正则表达式。正则\w+表达式将匹配所有单词,然后通过使用Regexp.ReplaceAllStringFunc您可以用预期内容替换单词,跳过停用词。根据你的情况,strings.ToLower而且strings.Title也将有所帮助。
例子:
str := "INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"
// Function replacing words (assuming lower case input)
replace := func(word string) string {
switch word {
case "with", "in", "a":
return word
}
return strings.Title(word)
}
r := regexp.MustCompile(`\w+`)
str = r.ReplaceAllStringFunc(strings.ToLower(str), replace)
fmt.Println(str)
// Output:
// Integrated Engineering 5 Year (Bsc with a Year in Industry)
https://play.golang.org/p/uMag7buHG8
您可以轻松地将其调整为您的字符串数组。
TA贡献1859条经验 获得超6个赞
那么你没有指定你使用的语言,所以我会给你一个一般的答案。你有一个包含一堆字符串的数组。首先我将整个字符串小写,然后遍历字符串中的每个字符(第一个大写,其余保持小写)。此时您需要寻找空格,这将帮助您划分每个字符串中的单词。找到空格后的第一个字符显然是不同的单词,应该大写。您也可以使用 Or a 验证下一个单词 is not 和 in。
我不在电脑前,所以我不能举一个具体的例子,但我希望这至少朝着正确的方向发展
- 3 回答
- 0 关注
- 156 浏览
添加回答
举报