【发布时间】:2021-05-28 02:45:41
【问题描述】:
我需要在 F# 中完成一个方法。我整天都在寻找一些方法来更改字符串中的字母,但没有找到任何东西。 (a)我已经完成了,现在我需要使用(b)中(a)中的方法。
let rec vowelToUpper x : char =
match x with
| 'a' -> 'A'
| 'e' -> 'E'
| 'i' -> 'I'
| 'o' -> 'O'
| 'u' -> 'U'
| _ -> x
let rec converter (str ) length =
if length=0 then
str
else
str.[length-1] <- vowelToUpper str.[length-1]
converter str (length-1)
【问题讨论】:
-
编译器不知道
str是否有索引器,因为它不知道str的类型。告诉它类型是什么 -converter (str : string) length = -
但这对你没有帮助,因为字符串是不可变的。
-
所以没有办法改字符串?
-
``` let workingString = "aeioufffaa" let array = workingString.ToCharArray() 数组。[0]
-
字符串在所有 .NET 语言中都是不可变的,因此与其考虑修改字符串,不如考虑生成包含正确答案的 new 字符串。
标签: arrays string recursion f# toupper