0

我想知道为什么它不起作用,以及为什么我不能对变量 a 和 b 使用 CHAR 数据类型。关键是,如何相应地比较数字(pr)的第一位和最后一位数字。

String  a, b;
for (int i=100; i<1000;i++) {
    for (int j=100; j<1000;j++) {
        pr=j*i;
        a = String.valueOf(pr).substring(0, 1);
        b= String.valueOf(pr).substring(4, 5);

        if ((a==b) )  {
            System.out.println(pr);
        }
    }
} 
4

3 回答 3

3

使用equals函数
a.equals(b)

如果您想忽略大小写,请使用
a.equalsIgnoreCase(b)

于 2013-02-20T06:18:24.740 回答
1

这不是==用于字符串比较的 JavaScript。

equals方法

于 2013-02-20T06:22:40.833 回答
1

在 Java 中,运算符==会比较对象的身份,因此如果有两个 String 类型的对象具有相同的内容,==则会为它们返回 false:

String x = new String ("foo");
String y = new String ("bar");
if (x == y)
    System.out.println ("Equal");
else
    System.out.println ("Now equal"); // This will be printed

为了按内容而不是身份比较 String 对象,您需要使用equals()如下方法:

if (x.equals (y))
    System.out.println ("Equal"); // This will be printed
else
    System.out.println ("Now equal");

请注意,如果xnullx.equals (y)则将抛出NullPointerException,而如果不是,x == y则将返回,如果是。为了防止你需要做这样的事情:falseynulltrueynullNullPointerException

if (x == null && y == null || x != null && x.equals (y))
    System.out.println ("Equal"); // This will be printed
else
    System.out.println ("Now equal");
于 2013-02-20T06:24:37.643 回答