简单的Java问题

时间:2012-02-10 02:17:38

标签: java

这不符合我的预期。样本输入将包括一个类似于0或1的星号。其余的是比较以查看数字是否匹配。当我试图查看一个字符是否为星号时,它不会像我期望的那样工作。

样品:

org = * 01

位= 001 || 101 || 011

public static void doesItWork(String org, String bit)
    {
        for(int i = 0; i <= org.length() - 1; i++)
        {
            System.out.println(org.substring(i, i + 1));
            if(org.substring(i, i + 1) != "*" && org.substring(i, i + 1) !=  bit.substring(i, i + 1))
                break;

            if(i == org.length() - 1)
                System.out.println(bit);
        }
    }

谢谢你的帮助。

2 个答案:

答案 0 :(得分:7)

!=上的

String无法按照您的意愿执行操作。 Java String.equals versus ==解释,但简而言之,

org.substring(i, i + 1) != "*"

应该是

!org.substring(i, i + 1).equals("*")

或理想情况

org.charAt(i) != '*'

答案 1 :(得分:0)

!=使用Strings可能不是个好主意。试试!x.equals(“*”);