简体   繁体   English

Java Stringbuilder实现void方法

[英]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返回值printDistanceStringBuilder (正如编译器告诉您的那样)。 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM