我有一個大約8000000個UTF-8字符的字符串。通過fmt.Scanf()
掃描大概需要10秒鐘,我該如何做得更快?我爲我的老師編寫的C scanf()
函數提供了一個Go包裝函數,作爲Go的fmt.Scanf()中的一些錯誤的解決方法,它在1-2秒內工作,但我不喜歡使用邊軟件包執行此類簡單任務。你能提出一些更快的方式來閱讀純Go中的字符串嗎?快速掃描一個大的UTF-8字符串
1
A
回答
6
找到解決方案。 bufio
工作更快(因爲它的緩衝,並fmt
的功能都沒有,它不分析什麼):
reader := bufio.NewReader(os.Stdin)
str, _ := reader.ReadString('\n') // Like fmt.Scanf("%s", &str), but faster
var x, y rune
fmt.Fscanf(reader, "%c %c", &x, &y) // I need to read something else
// (see comments for the question)
// It's easy, as I can use fmt.Fscanf
...甚至更快即是c scanf()
包裝。
相關問題
- 1. 如何掃描一個字符串
- 2. 快速圖像掃描
- 3. bash掃描數百萬個文件並快速掃描值
- 4. 正在掃描字符串字符串
- 5. 掃描NSMutableArray的一部分字符串
- 6. 掃描字符串數組
- 7. 掃描字符串格式
- 8. 錯誤掃描字符串
- 9. 逐行掃描字符串
- 10. Javascript字符串掃描儀?
- 11. 掃描到字符串
- 12. 掃描儀無法掃描第一字符串
- 13. Python中的快速ping掃描
- 14. 掃描內容的網站(快速)
- 15. 「掃描字符串文字時的EOL」
- 16. 的Python - 製作一個快速端口掃描器
- 17. 掃描單個字符C
- 18. 試圖掃描已經掃描的文件中的一行字符串
- 19. 掃描數字爲字符串
- 20. 在Angularjs中掃描DOM的字符串
- 21. java比較掃描的字符串
- 22. 掃描字符串運算 - 的javascript
- 23. 掃描輸入的字符串
- 24. java掃描器字符串的比較
- 25. 掃描器的空字符串
- 26. 掃描字符串的Java代碼
- 27. 掃描字符串的ASCII值
- 28. Java:掃描字符串的模式
- 29. c中的掃描字符串
- 30. 帶掃描器的字符串輸入
你在做什麼樣的掃描?尋找特定類型的號碼?如果你想要快點,那麼知道具體問題是很好的 - 否則堅持一些普遍的,並證明。 – Floris 2013-02-17 18:38:46
@弗洛伊斯我正在掃描的是「%s%c%c」。我要遍歷讀取字符串的符文,但我必須知道預先提供的那兩個字符。所以我必須掃描該字符串並將其存儲到內存中。 – 2013-02-17 18:45:17