2015-12-20 22 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

を – user2202911

答えて

45

==のスクリーンショットを添付ゴー内の文字列を比較するための正しい演算子です。しかし、reader.ReadStringでSTDINから読み込んだ文字列には"a"が含まれていませんが、"a\n"(詳細を見ると、出力例に余分な改行があります)。

あなたの入力から末尾の空白を削除するstrings.TrimRight機能を使用することができます:画像を定着させるためのおかげ@helmbert

if strings.TrimRight(input, "\n") == "a" { 
    // ... 
} 
関連する問題