2015-12-20 49 views
24

在Go字符串比較中,我無法產生「真實」結果。我寫了下面的解釋問題和連接輸出的截圖如何比較GoLang中的字符串?

// string comparison in Go 
package main 
import "fmt" 
import "bufio" 
import "os" 

func main() { 
    var isLetterA bool 

    fmt.Println("Enter the letter a") 
    reader := bufio.NewReader(os.Stdin) 
    input, _ := reader.ReadString('\n') 

    if(input == "a") { 
     isLetterA = true 
    } else { 
     isLetterA = false 
    } 

    fmt.Println("You entered",input) 
    fmt.Println("Is it the letter a?",isLetterA) 

} 

example

+2

@helmbert感謝固定圖像 – user2202911

回答

45

==是正確的運營商轉到比較字符串。但是,從STDIN以reader.ReadString讀取的字符串不包含"a",但是"a\n"(如果仔細觀察,您會在示例輸出中看到額外的換行符)。

可以使用strings.TrimRight功能來刪除尾隨從輸入空格:

if strings.TrimRight(input, "\n") == "a" { 
    // ... 
}