我有一个大的字符串数组像这样的的第一个字母:使字符串中的大写单词
“综合工程5年(BSC在行业一年)”我想利用单词的第一个字母,并使其余的单词小写。所以'集成'将成为'综合'。
作品中的第二个扳手 - 我想要一个例外,如'和','','','','与'。
所以上面的例子将成为:
综合工程5年(BSC在行业一年)。
我该怎么做Go?我可以编写循环/数组来管理变化,但实际的字符串转换就是我努力的方向。
我有一个大的字符串数组像这样的的第一个字母:使字符串中的大写单词
“综合工程5年(BSC在行业一年)”我想利用单词的第一个字母,并使其余的单词小写。所以'集成'将成为'综合'。
作品中的第二个扳手 - 我想要一个例外,如'和','','','','与'。
所以上面的例子将成为:
综合工程5年(BSC在行业一年)。
我该怎么做Go?我可以编写循环/数组来管理变化,但实际的字符串转换就是我努力的方向。
有一个在串包的内置函数调用的名称
那么你没有指定你使用的语言,所以我会给你一个普遍的答案。你有一个包含一串字符串的数组。首先,我会将整个字符串设置为小写字母,然后通过字符串中的每个字符(大写第一个字符,保持小写)。此时你需要寻找空间,这将帮助你划分每个字符串中的单词。找到空格后的第一个字符显然是一个不同的词,应该大写。您可以验证下一个单词是否与“或”同时出现。
我不是在电脑前,所以我不能给一个具体的例子,但我希望这得到在至少
他用围棋。标记是这里的主要指标,虽然在问题中也提到了它。 – tomasz
您可以使用regular expressions此任务的正确方向。 A \w+
正则表达式将匹配所有单词,然后通过使用Regexp.ReplaceAllStringFunc
,您可以用预期内容替换单词,跳过停用词。在你的情况下,strings.ToLower
和也将有所帮助。
例子:
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
您可以轻松地适应这个以您的字符串数组的。
您可能希望在调用Title func之前先小写文本 – boug
答案如何解决问题中提到的异常? (和,在,与) – tomasz