字符串构建器和字符串输出

时间:2015-04-29 13:07:42

标签: java string output

虽然我已将输出转换为String,但控制台上的输出为“Solution @ 3343c8b3”。感谢。

public class Solution { 

    public String convertToTitle(int n) {

        if (n < 1)
            throw new IllegalArgumentException("Input a wrong number");

        StringBuilder sb = new StringBuilder();

        while (n > 0) {
            n--;
            char ch = (char) (n % 26 + 'A');
            n = n / 26;
            sb.append(ch);
        }

        sb.reverse();
        return sb.toString();
    }
}

测试类:

public class test {

    public static void main(String[] args) {

        int f = 2;

        Solution f1 = new Solution();
        f1.convertToTitle(f);

        System.out.println(f1);
    }
}

5 个答案:

答案 0 :(得分:4)

您应该在班级中覆盖toString方法。

您获得的输出是toString的默认实现,它显示了类的名称,后跟@,然后是哈希码:

  

类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,at符号字符“@”和散列码的无符号十六进制表示形式组成。对象。

另请注意,convertToTitle会返回String,您只需打印即可。

答案 1 :(得分:2)

您打印的是Solution个对象,而不是String创建的convertToTitle

答案 2 :(得分:2)

您需要打印convertToTitle的输出,因此需要输入

System.out.println(f1.convertToTitle(f));

答案 3 :(得分:2)

您应该打印方法返回的值:convertToTitle,如:

String title = f1.convertToTitle(f);
System.out.println(title);

另外,这可能不是你现在关注的问题,你的System.out.println(f1);正在打印toString Object中默认实现toString提供的字符串类。

您应该在Solution中覆盖$http.get('/api/sites/' + service.siteID) 方法。

答案 4 :(得分:2)

当你调用f1.convertToTitle(f);时,你正在返回一个字符串对象,但是你没有使用它。相反,你打印f1。

如果您想获得返回的输出,请使用

String output=f1.convertToTitle(f);
System.out.println(output);

或者,如果您想从解决方案中打印其他内容,则应覆盖toString方法并使用System.out.println(f1);