簡體   English   中英

Java Stringbuilder實現void方法

[英]Java Stringbuilder implementing void method

我對StringBUilder.append()感到困惑。 Netbeans表示不允許使用void類型。

這是我的Java類Levencthein.java

 public void printDistance(String s1, String s2) {
    System.out.println( computeEditDistance(s1, s2) + " ("+similarity(s1, s2) * 100 +")");
}

現在,在另一個類中,假設在b.java中

StringBuilder s = new StringBuilder();
for (final JCCDFile file : files) {

        LevenshteinDistance lv = new LevenshteinDistance();
        if (idLexerSelection != getIDLexer()) {
            System.out.println(temp.getName() + " ==> " + file.getName());

            s.append(lv.printDistance(name1, name2)); This is the error


            sb.append(file.getName());
        }
    }

有什么辦法嗎?

您正在嘗試附加printDistance的返回值,但是沒有返回值,因為它是void printDistance ,不打印值,而是返回它。

return computeEditDistance(s1, s2) + " ("+similarity(s1, s2) * 100 +")";

您不能將printDistance的void返回值printDistanceStringBuilder (正如編譯器告訴您的那樣)。 如果我了解你,那么這個

public void printDistance(String s1, String s2) {
  System.out.println( computeEditDistance(s1, s2) 
      + " ("+similarity(s1, s2) * 100 +")");
}

應該返回String並且我將返回String.format

public void printDistance(String s1, String s2) {
  return String.format("%s (%s)", computeEditDistance(s1, s2), 
      similarity(s1, s2) * 100);
}

假設computeEditDistance()similarity()返回String 如果它們返回int則將%s的格式替換為%s %d (對於浮點數,則替換為%f )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM