2012-02-10 64 views
1

这不按我期望的方式工作。示例输入将包含一个类似于以太0或1的星号。其余部分将进行比较以查看数字是否匹配。当我试图查看一个字符是否为星号时,它不会按照我期望的方式工作。简单的Java问题

样品:

组织= * 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); 
     } 
    } 

谢谢你们的帮助。

+1

这是功课吗? – 2012-02-10 02:23:40

回答

7

!=String s不会做你想做的事情。 Java String.equals versus ==解释,但简单,

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

大概应该是

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

或理想

org.charAt(i) != '*' 
+0

正是我在找什么。谢谢。 – 2012-02-10 03:05:39

+0

@KevinRead,不客气。祝你的项目好运。 – 2012-02-10 03:12:44

0

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

+0

另外,如果你是来自不同语言的java的新手,但知道正则表达式,请在java,java.util.Regex – 2012-02-10 02:23:52