我試圖從控制檯(包括空白)讀取整行,然後對其進行處理。使用bufio.ReadString,換行符與輸入一起讀,所以我想出了下面的代碼來修剪換行符:在Go中提取子字符串
input,_:=src.ReadString('\n')
inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string
有沒有一種更地道的方式來做到這一點?也就是說,在爲你提取子字符串時,是否已經有一個庫負責結束空字節?
(是的,我已經知道有一種方法來讀取一行沒有go readline -> string換行符但我正在尋找更優雅的字符串操作。)
你甚至不需要0(或者:),'s = s [:len(s)-1]'。 – uriel
非常感謝您澄清;看起來在ReadString函數返回的字符串末尾有_two_空白字符,所以我誤認爲空字符是空字符。對不起C字符串的混淆;我和bufio一起使用fmt,導致控制檯中出現有趣的東西,所以我認爲它可能是髒的空字節。只是最後的澄清 - ReadString中額外的空白是什麼? – mark2222
好吧我會回答我自己的問題 - 這是\ r然後\ n:P有趣的控制檯輸出是因爲我輸出\ r沒有\ n。 – mark2222