使用.length方法获取不兼容的类型

时间:2013-02-28 06:47:51

标签: java

我正在使用java进行练习,首先使用java进行自我审核。我遇到麻烦的部分练习是要求我找到refNumber字符串的长度。如果字符串的长度为零,则打印出一行“zzz”。我尝试通过创建局部变量并使其等于refNumber.length()来做到这一点。但是在我的条件语句中,bluejay表示我有一个不兼容的类型。呃,请帮忙。提前致谢。

class Book
{
// The fields.
private String author;
private String title;
private int pages;
private String refNumber;

/**
 * Set the author and title fields when this object
 * is constructed.
 */
public Book(String bookAuthor, String bookTitle, int numberOfPages)
{
    author = bookAuthor;
    title = bookTitle;
    numberOfPages = pages;
    refNumber = "";
}

public String getAuthor()
{
    return author;
}

public String getTitle()
{
    return title;
}

public int getPages()
{
    return pages;
}

public String getRefNumber()
{
    return refNumber;
}

public void setRefNumber(String ref){
    ref = refNumber;
}

public void printTitle() {
    System.out.println("Book desciption: " + title);

}

public void printAuthor() {
    System.out.print(" by " + author);

}

public void printPages(){
    System.out.println("Pages: " + pages);
}

public void printRef(){
    int count = refNumber.length();
    if (count = 0){                        //incompatible type wtf?
    System.out.println("zzz");
    }
    else {
        System.out.println("Reference Number: " + referenceNumber);
    }

}

5 个答案:

答案 0 :(得分:2)

大多数编程语言使用单个等号=作为赋值运算符。你要做的是比较两个数字,它使用双等号==

因此,实际上,您的代码尝试使用值0分配计数,然后检查值是true还是false。由于赋值操作的结果既不是true也不是false,它会抛出错误。

正如其他人所说,使用count == 0

答案 1 :(得分:1)

尝试..出来放

 if (refNumber.length() == 0){                        
    System.out.println("zzz");
    }

答案 2 :(得分:0)

使用此:

if (count == 0){ 
    ....
}

'='是赋值运算符,'=='是比较运算符

答案 3 :(得分:0)

应该是

if(count == 0)

在你的代码中,就像你在if子句中分配0而不能发生,因为它需要一个基于条件的布尔值。所以在这里你应该检查count是否等于(使用相等运算符==),如果它们相等则返回true,否则返回false。

答案 4 :(得分:0)

count=0代表作业,而count==0代表比较。