it-swarm-id.com

Bagaimana Anda memeriksa apakah string tidak sama dengan objek atau nilai string lainnya di java?

Saya telah mencoba membuat jam yang dapat diatur pengguna. Saya ingin pengguna ditanya pertanyaan dan mereka menjawab dengan kata-kata seperti ya atau tidak. Saya telah melakukannya untuk hal-hal yang tidak berubah menggunakan kode ini seperti apakah pengguna ingin detik ditampilkan atau tidak, tetapi itu tidak berfungsi dengan baik ketika saya ingin string berubah, katakan dari AM ke = PM ketika jam melebihi 12. Inilah yang saya gunakan:

    System.out.println("AM or PM?"); 
    Scanner TimeOfDayQ = new Scanner(System.in);
    TimeOfDayStringQ = TimeOfDayQ.next();

    if(!TimeOfDayStringQ.equals("AM") || !TimeOfDayStringQ.equals("PM")) {
        System.out.println("Sorry, incorrect input.");
        System.exit(1);
    }

    ...

    if(Hours == 13){
        if (TimeOfDayStringQ.equals("AM")) {
            TimeOfDayStringQ.equals("PM");
        } else {
            TimeOfDayStringQ.equals("AM");
        }
                Hours = 1;
        }
     }

Setiap kali saya memasukkan sesuatu ketika diminta, apakah saya menempatkan AM, PM, atau kebijakan lainnya, itu memberi saya kesalahan yang saya tulis dan kemudian keluar. Ketika saya menghapus bagian kode yang menghentikan program dengan kesalahan itu tidak akan mengubah string dari AM menjadi PM ketika jam sama dengan 13. Terima kasih atas bantuan Anda, itu sangat dihargai.

20
Pillager225

Ubah kode Anda menjadi:

System.out.println("AM or PM?"); 
Scanner TimeOfDayQ = new Scanner(System.in);
TimeOfDayStringQ = TimeOfDayQ.next();

if(!TimeOfDayStringQ.equals("AM") && !TimeOfDayStringQ.equals("PM")) { // <--
    System.out.println("Sorry, incorrect input.");
    System.exit(1);
}

...

if(Hours == 13){
    if (TimeOfDayStringQ.equals("AM")) {
        TimeOfDayStringQ = "PM"; // <--
    } else {
        TimeOfDayStringQ = "AM"; // <--
    }
            Hours = 1;
    }
 }
26
Eng.Fouad

anda ingin menggunakan && untuk melihat bahwa itu tidak sama dengan "AM" DAN tidak sama dengan "PM"

if(!TimeOfDayStringQ.equals("AM") && !TimeOfDayStringQ.equals("PM")) {
    System.out.println("Sorry, incorrect input.");
    System.exit(1);
}

agar jelas Anda juga bisa melakukannya

if(!(TimeOfDayStringQ.equals("AM") || TimeOfDayStringQ.equals("PM"))){
    System.out.println("Sorry, incorrect input.");
    System.exit(1);
}

untuk memiliki not (one or the other) frasa dalam kode (ingat tanda kurung (diam))

13
ratchet freak

Ubah || Anda ke && jadi itu hanya akan keluar jika jawabannya TIDAK "AM" atau "PM".

1
goto10