[英]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返回值printDistance
到StringBuilder
(正如編譯器告訴您的那樣)。 如果我了解你,那么這個
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.