Есть такой код:
public class Main {
public static void main(String[] args) {
if (args[0] == "hi")
System.out.println("Hello");
else
System.out.println("Bye");
}
}
Как видите я хочу, чтобы после запуска с скомпилированным выше кодом файл Main.class, с параметром hi, в терминал выводилось сообщение Hello, но выводится Bye. Почему?
Используйте метод equals для сравнения двух строк, которые создаются во время выполнения.
Рассмотрите эту программу
import java.util.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
System.out.println( "Run-time String definition:" );
String s1 = "He";
String s2 = "llo";
System.out.println( s1 + s2 == "Hello" );
System.out.println( ( s1 + s2 ).equals( "Hello" ) );
System.out.println( "\nCompile-time String definition:" );
String s3 = "Hello";
System.out.println( s3 == "Hello" );
System.out.println( s3.equals( "Hello" ) );
}
}
Ее вывод на консоль
Run-time String definition:
false
true
Compile-time String definition:
true
true
Продвижение своими сайтами как стратегия роста и независимости