我是F#的新手,我无法找到数字字符串的最后一个元素并将该元素转换为int。所以,如果字符串是“123”,那么我想要回到3.但是,这段代码:
let s (a : string) =
let x = a.[0]
int x
当我s "123"
时,这让我回到了49。我无法弄清楚为什么会这样。此外,当我输入字符串“124”时它仍然给我49.有人可以解释为什么会发生这种情况以及如何解决这个问题吗?
答案 0 :(得分:4)
a.[0]
返回a
的第一个字符:'1'
。将字符转换为int
会返回其ASCII code。您需要在字符串上调用int
:
let x = a.Substring(a.Length - 1)
int x
(我在第一行使用了标准的.Net方法; F#标准库也有相同的功能。)
答案 1 :(得分:2)
正如您通过索引字符串注意到的那样,F#将其视为字符数组 看看:ASCII Table
int'1'基本上是字符“1”
的整数值您可能需要int "1"
或Int32.Parse("1")
或Int32.TryParse