将 "PrintInfo-method" 从 python 翻译成 Java

Translating a "PrintInfo-method" from python to Java

我正在努力学习如何在 Java 中编写代码,在对 python 相当了解的基础上。

为了学习,我正在“翻译”旧的 python Class “bankAccount” 从 python 到 Java。到目前为止一切顺利,但我在使用打印出 bankAccount 对象信息的方法时遇到了问题。

我试图从 python 转换为 java 的打印输出方法是:

    def print_info(self):
        first = self._first_name
        last = self._last_name
        number = self._number
        balance = self._balance

        s = f"{first} {last}, {number}, balance: {balance}"

        print(s)

这是我在Java中写的:

    public void printInfo() {
        String first = this.firstName;
        String last = this.lastName;
        double balance = this.balance;
        String s;

        s = String.format("\n%s %s %$f", first, last, "Balance: ", balance);
        System.out.println(s);
    }

我收到的错误消息是:

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '$'
    at java.base/java.util.Formatter.checkText(Formatter.java:2732)
    at java.base/java.util.Formatter.parse(Formatter.java:2718)
    at java.base/java.util.Formatter.format(Formatter.java:2655)
    at java.base/java.util.Formatter.format(Formatter.java:2609)
    at java.base/java.lang.String.format(String.java:2897)
    at trix.uke1.BankAccount.printInfo(BankAccount.java:47)
    at trix.uke1.BankAccount.main(BankAccount.java:58)

我知道如何通过输入来让它工作:

System.out.println(this.firstName +" " + this.lastName + " " + "Balance: " + this.balance);

.. 但我想更流畅地使用 String.format() 函数,因为我非常习惯在 python.

中使用 f-strings

有谁能帮我解决这个问题吗? 欢迎并感谢所有帮助

我认为这只是一个语法问题:

例如:

String firstName = "Richard";
String lastName = "Yu";
double balance = 1E40;
    
String s = String.format("\n%1$s %2$s Balance: %3$f", firstName, lastName,balance);
System.out.println(s);

输出:

Richard Yu Balance: 10000000000000000000000000000000000000000.000000