将字符串中单词的首字母大写
Make first letter of words uppercase in a string
我有一大堆字符串,比如这个:
"INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"
我想把单词的第一个字母大写,其余单词小写。所以 INTEGRATED
会变成 Integrated
.
作品中的第二个扳手 - 我想要一些单词的例外,例如 and
、in
、a
、with
.
所以上面的例子会变成:
"Integrated Engineering 5 Year (Bsc with a Year in Industry)"
我如何在 Go 中执行此操作?我可以编写 loop/arrays 代码来管理更改,但实际的字符串转换是我努力解决的问题。
嗯,你没有指定你使用的语言,所以我会给你一个一般的答案。你有一个数组,里面有一堆字符串。首先,我将整个字符串设为小写,然后遍历字符串中的每个字符(将第一个字符大写,其余保持小写)。此时你需要寻找space,这将帮助你划分每个字符串中的单词。找到 space 后的第一个字符显然是一个不同的词,应该大写。您也可以验证下一个单词是否在 Or a 中。
我不在电脑旁,所以无法举出具体的例子,但我希望这至少能朝着正确的方向发展
您可以使用 regular expressions 完成此任务。 \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
您可以轻松地将其适应您的字符串数组。
内置 strings
包中有一个名为 Title
的函数。
s := "INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"
fmt.Println(strings.Title(strings.ToLower(s)))
我有一大堆字符串,比如这个:
"INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"
我想把单词的第一个字母大写,其余单词小写。所以 INTEGRATED
会变成 Integrated
.
作品中的第二个扳手 - 我想要一些单词的例外,例如 and
、in
、a
、with
.
所以上面的例子会变成:
"Integrated Engineering 5 Year (Bsc with a Year in Industry)"
我如何在 Go 中执行此操作?我可以编写 loop/arrays 代码来管理更改,但实际的字符串转换是我努力解决的问题。
嗯,你没有指定你使用的语言,所以我会给你一个一般的答案。你有一个数组,里面有一堆字符串。首先,我将整个字符串设为小写,然后遍历字符串中的每个字符(将第一个字符大写,其余保持小写)。此时你需要寻找space,这将帮助你划分每个字符串中的单词。找到 space 后的第一个字符显然是一个不同的词,应该大写。您也可以验证下一个单词是否在 Or a 中。
我不在电脑旁,所以无法举出具体的例子,但我希望这至少能朝着正确的方向发展
您可以使用 regular expressions 完成此任务。 \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
您可以轻松地将其适应您的字符串数组。
内置 strings
包中有一个名为 Title
的函数。
s := "INTEGRATED ENGINEERING 5 Year (BSC with a Year in Industry)"
fmt.Println(strings.Title(strings.ToLower(s)))