猿问

使字符串中单词的第一个字母大写

我有一大串字符串,比如这个:

'INTEGRATED ENGINEERING 5 Year (BSC with a year in Industry)'

我想将单词的第一个字母大写,并将其余单词小写。所以“集成”将变成“集成”。

工作中的第二个扳手 - 我想要一个例外,例如“and”、“in”、“a”、“with”。

所以上面的例子会变成:

集成工程 5 年(Bsc,在工业领域工作一年)。

我将如何在 Go 中做到这一点?我可以编写循环/数组来管理更改,但实际的字符串转换是我所挣扎的。


红颜莎娜
浏览 157回答 3
3回答

HUWWW

内置strings包中有一个名为Title.请参阅https://play.golang.org/p/07dl3hMuGHs := "INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"fmt.Println(strings.Title(strings.ToLower(s)))https://play.golang.org/p/GLMVV10-4eX

繁星coding

您可以为此任务使用正则表达式。正则\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您可以轻松地将其调整为您的字符串数组。

慕丝7291255

那么你没有指定你使用的语言,所以我会给你一个一般的答案。你有一个包含一堆字符串的数组。首先我将整个字符串小写,然后遍历字符串中的每个字符(第一个大写,其余保持小写)。此时您需要寻找空格,这将帮助您划分每个字符串中的单词。找到空格后的第一个字符显然是不同的单词,应该大写。您也可以使用 Or a 验证下一个单词 is not 和 in。我不在电脑前,所以我不能举一个具体的例子,但我希望这至少朝着正确的方向发展
随时随地看视频慕课网APP

相关分类

Go
我要回答