[解決済み] GoLangで文字列を比較するにはどうしたらいいですか?
2022-10-20 16:45:39
質問
Goの文字列比較で「真」の結果を出すことができません。私は問題を説明するために次のように書き、出力のスクリーンショットを添付しました。
// 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)
}
どのように解決するのですか?
==
は、Goで文字列を比較するための正しい演算子です。しかし、STDIN から読み込んだ文字列を
reader.ReadString
で読み込んだ文字列には
"a"
を含まないが
"a\n"
(となります(よく見ると、例の出力に余分な改行があるのがわかります)。
を使用することができます。
strings.TrimRight
という関数を使って、入力から末尾の空白を取り除くことができます。
if strings.TrimRight(input, "\n") == "a" {
// ...
}
関連
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] goで文字列の連結を効率的に行う方法
-
[解決済み] Goで複数行の文字列はどのように書くのですか?
-
[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
-
[解決済み] サーバーでSSLが有効になっていない
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] Goを使って大きなファイルを効率よくダウンロードするにはどうしたらいいですか?
-
[解決済み] スライスを格納する interface{} 上の範囲
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] 現在時刻に時・分・秒を足す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーでSSLが有効になっていない
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] reflectを使用して、構造体フィールドの値を設定するにはどうすればよいですか?
-
[解決済み] Goでスライスを逆に反復処理する方法はありますか?
-
[解決済み] Goプログラムで静的リソースをバンドルする最良の方法は何ですか?
-
[解決済み] go モジュール内のローカルパッケージへのアクセス (go 1.11)
-
[解決済み] sync.WaitGroupの例は正しいですか?
-
[解決済み] Goのargv[0]に相当するものは何ですか?
-
[解決済み] Go で子プロセスの標準出力パイプをリダイレクトする
-
[解決済み] golangのスライスで要素を検索する方法