[英]Java Stringbuilder implementing void method
I am confused about StringBUilder.append(). 我对StringBUilder.append()感到困惑。 Netbeans say that void type not allowed.
Netbeans表示不允许使用void类型。
Here is the the my Java class named Levencthein.java 这是我的Java类Levencthein.java
public void printDistance(String s1, String s2) {
System.out.println( computeEditDistance(s1, s2) + " ("+similarity(s1, s2) * 100 +")");
}
now, in the other class, assumpted in b.java 现在,在另一个类中,假设在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());
}
}
any solution ? 有什么办法吗?
You are attempting to append the return value of printDistance
, but there is no return value because it's void
. 您正在尝试附加
printDistance
的返回值,但是没有返回值,因为它是void
。 In printDistance
, instead of printing the value, return it. 在
printDistance
,不打印值,而是返回它。
return computeEditDistance(s1, s2) + " ("+similarity(s1, s2) * 100 +")";
You cannot append the void return of printDistance
to a StringBuilder
(as the compiler is telling you). 您不能将
printDistance
的void返回值printDistance
到StringBuilder
(正如编译器告诉您的那样)。 If I understand you, then this 如果我了解你,那么这个
public void printDistance(String s1, String s2) {
System.out.println( computeEditDistance(s1, s2)
+ " ("+similarity(s1, s2) * 100 +")");
}
Should return String
and I'd return String.format
like 应该返回
String
并且我将返回String.format
像
public void printDistance(String s1, String s2) {
return String.format("%s (%s)", computeEditDistance(s1, s2),
similarity(s1, s2) * 100);
}
Assuming that computeEditDistance()
and similarity()
return String
. 假设
computeEditDistance()
和similarity()
返回String
。 If they return int
replace the %s
in format with %d
(or %f
for floating point). 如果它们返回
int
则将%s
的格式替换为%s
%d
(对于浮点数,则替换为%f
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.