Ich war in das auf Paiza veröffentlichte Skill-Check-Problem "Zeichenkettenvergleich" (* Problem der Code-Offenlegung OK) verwickelt, also habe ich es zusammengefasst.
Der Inhalt des Problems ist "Vergleichen Sie die beiden Eingabezeichenfolgen"
Ich wusste, dass es eine String-Vergleichsfunktion gibt, aber ich wusste nicht, wie ich das in dem Video machen sollte, auf das ich mich bezog, also hatte ich eine vorgefasste Vorstellung, dass ich sie nicht verwenden würde.
Falscher Code
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line1 = sc.nextLine();
String line2 = sc.nextLine();
if( line1 == line2 ){
System.out.println("OK");
}
else{
System.out.println("NG");
}
}
}
Auch wenn das Ausgabeergebnis dieselbe Zeichenfolge ist, wird "NG"
Geben Sie zur Bestätigung den folgenden Code ein
Versuchen Sie zu debacken
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line1 = sc.nextLine();
String line2 = sc.nextLine();
//Überprüfen Sie die if-Anweisung
String line1 = "moji";
String line2 = "moji";
//Bestätigung der Eingabe
System.out.println(line1);
System.out.println(line2);
if( line1 == line2 ){
System.out.println("OK");
}
else{
System.out.println("NG");
}
}
}
Ausgabeergebnis;
moji
moji
ok
Es ist kein Problem, die if-Anweisung und die Zeicheneingabe abzurufen. Immerhin denke ich, dass der Zeichenfolgenvergleich schlecht ist (Bedingung der if-Anweisung) und bestätige ihn und komme zur folgenden Seite. [Einführung in Java] Vergleichen von Strings (String) ("==" und "equals") Zum Äquivalenzvergleich des String-Typs in Java
Richtiger Code
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line1 = sc.nextLine();
String line2 = sc.nextLine();
if( line1.equals(line2)){
System.out.println("OK");
}
else{
System.out.println("NG");
}
}
}
Recommended Posts