如何比较子字符串创建的字符串?

时间:2013-02-20 06:15:45

标签: java string substring

我想知道为什么它不起作用,为什么我不能将CHAR数据类型用于变量a和b。关键是,如何相应地比较数字(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);
        }
    }
} 

3 个答案:

答案 0 :(得分:3)

使用equals个功能
a.equals(b)

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

答案 1 :(得分:1)

这不是使用==进行字符串比较的JavaScript。

转到equals method

答案 2 :(得分: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");

请注意,如果xnull,则x.equals (y)会抛出NullPointerExceptionx == yfalse返回y null如果truey,则不是nullNullPointerException。要防止if (x == null && y == null || x != null && x.equals (y)) System.out.println ("Equal"); // This will be printed else System.out.println ("Now equal"); ,您需要执行以下操作:

{{1}}