2
A
回答
5
從技術上來說,這個問題尚未定義。 let f _ = 'a'
將是一個正確的答案。我們需要知道所需的編碼。但是,我認爲它是安全的假設,你在談論以下編碼之一,充滿了領先的零位:
- ASCII
- UTF-8
- UTF-16
- 一些8B擴展的ASCII變體
或者,如果您對什麼是.NET字符有一個普遍的誤解,那麼可能是UTF-32。但是不可能將UTF-32 int可以表示的所有字符轉換爲單個字符。 char
類型實際上定義爲UTF-16代碼單元。
無論如何,如果我們忽略使用的空間量,所有這些將'a'編碼爲97。
這裏有一些工具:
char
數字輸入轉換爲UTF-16,其是由在.NET字符使用的內部編碼。- 查看System.Text namespace和System.Text.Encoding各種解碼工具,包括讀取UTF-8。
- ASCII包含在Unicode代碼點中,因此也可以通過上述方式進行轉換 - 如果輸入字符始終在ASCII內,即除了最低有效位7位都置零。
- 對於過時的,與文化相關的8位編碼,尋找合適的編碼工具,與上面類似。儘管在當今時代使用它們是有問題的。
- System.Char.ConvertFromUtf32從UTF-32獲取最多兩個字符的字符串。
2
let str = "Hello World!"
// Convert to an int array and group by key.
let count_array =
str.ToCharArray()
|> Array.map int
|> Array.groupBy id // Groups them by ints
// Since the ints are the same in this case, we convert the array length to counts.
// We also convert k back to char.
|> Array.map (fun (k,ar) -> char k, ar.Length)
printfn "%A" count_array
// [|('H', 1); ('e', 1); ('l', 3); ('o', 2); (' ', 1); ('W', 1); ('r', 1); ('d', 1);
// ('!', 1)|]
通過Vandroiy答案有一些相關的信息,但在這裏是做你問一個簡單的方法。
上面的代碼是低效的,因爲我從字符串轉換爲char數組到int數組並返回char。雖然在從char轉換爲int的單個級別上是無操作的,但是每個這些函數調用都會遍歷數組,並創建一個新的函數並將其留給GC來處理舊數組。這會造成記憶流失。
相關問題
- 1. 如何將字符串值轉換(或轉換)爲整數值?
- 2. 如何將整數轉換爲字符
- 3. 將字符值轉換爲整數值
- 4. 如何將字符串轉換爲枚舉值爲整數?
- 5. 如何將整數值轉換爲羅馬數字字符串?
- 6. 將整數值轉換爲字符串
- 7. 將字符串值轉換爲整數
- 8. 如何將此字符串值轉換爲整數值?
- 9. 如何將數據表值從整數轉換爲字符串
- 10. 如何將字符串值的xml文件轉換爲整數
- 11. 如何將時間「duration」從字符串值轉換爲整數?
- 12. 如何將字符串值轉換爲整數,在vb.net
- 13. 如何將空字符串轉換爲整數值0
- 14. 如何整數轉換爲字符串
- 15. 如何將system.data.dataRow值轉換爲整數
- 16. 如何將字節數組轉換爲整數,然後轉換爲字符串,以顯示整數值?
- 17. UIActivityViewController如何將字符串轉換爲打印
- 18. 如何打印HKEY或將其轉換爲字符串?
- 19. 如何將印度語字符轉換爲Unicode轉義字符
- 20. 將(Int,字符串)轉換爲字符串以打印數組
- 21. 如何將數字轉換爲字符?
- 22. 如何將字符串中的數字轉換爲整數
- 23. SSIS將轉義字符轉換爲asc(不可打印字符)
- 24. 無法打印已轉換爲字符串的整數
- 25. 如何將轉義字符打印爲字符?
- 26. 將整數轉換爲其十六進制值打印
- 27. 將字符數組轉換爲整數
- 28. 將字符數組轉換爲整數
- 29. 將字符數組轉換爲整數
- 30. 將字符數組轉換爲整數
使用''字符97''您可以將函數映射到數組上。如果你顯示一些代碼,很容易知道如何。 – Gustavo