reader.ReadString 不會去掉初始分隔符號
reader.ReadString 不會去掉初始分隔符號為了創建一個程式來迎接名為Alice 或Bob 的用戶,開發人員遇到一個問題,即使是合法的名稱也會引發不受歡迎的回應。程式錯誤地拒絕了 Alice 和 Bob 的進入。
問題此問題源自於程式中使用 reader.ReadString('\n') 。此函數檢索字符,直到遇到換行符。但是,它不會自動從返回的字串中刪除分隔符,從而導致在使用者輸入中包含額外的換行符。
解決方案解決此問題,有兩種可能的方法:
1。修剪換行符號if aliceOrBob(strings.TrimSpace(text)) { fmt.Printf("Hello, ", text) }
使用 strings.TrimSpace 函數在計算輸入字串之前刪除所有前導或尾隨空格。這有效地刪除了導致問題的換行符。 if aliceOrBob(strings.TrimSpace(text)) { fmt.Printf("你好,",文字) }
2.使用 ReadLine 取代 ReadStringif aliceOrBob(strings.TrimSpace(text)) { fmt.Printf("Hello, ", text) }
或者,可以使用 ReadLine 函式取代 ReadString。 ReadLine 會擷取一行文本,但在傳回的字串中不包含換行符。 text, _, _ := reader.ReadLine() 如果 aliceOrBob(字串(文本)) { fmt.Printf("你好,",文字) }
解釋將 string(text) 與 ReadLine 一起使用的原因是 ReadLine 傳回一個位元組切片,而 aliceOrBob 需要一個字串參數。免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3