こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Javaの初心者です

Javaの勉強をしています。
以下のコードを作成しました。

import java.util.*;

public class Main {
public static void main(String[] args) {
int flg = 0;
Scanner sc = new Scanner(System.in);
String str = sc.next();
String data = sc.next();
if (data == str) {
flg = 1;
}
if (flg == 1) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}

標準入力に
A
A
を入力して実行しました。
YESと表示されるのを期待していたのですが、NOと表示されます。
何が悪いのでしょうか?

投稿日時 - 2020-09-11 10:58:06

QNo.9797649

すぐに回答ほしいです

質問者が選んだベストアンサー

この部分が誤りです。

if (data == str) {

Stringオブジェクト同士の比較に==を使うと、ほとんどの場合に意図した動作になりません。equals()メソッドを使ってください。

String以外の場合でも、オブジェクト同士を比較するときは==とequals()の使い分けに注意が必要です。

投稿日時 - 2020-09-11 12:22:55

お礼

そうなんですか!
まったく知りませんでした。
勉強になりました、ありがとうございます(^^)

投稿日時 - 2020-09-11 13:07:02

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問