【问题标题】:Integer.toString(argument) or toString(argument)Integer.toString(argument) 或 toString(argument)
【发布时间】:2014-02-27 21:48:09
【问题描述】:

我已经为信用卡类编写了一些代码,粘贴在下面。我有一个接受上述变量的构造函数,并且正在研究一些将这些变量格式化为字符串的方法,以便最终输出类似于

电话号码:1234 5678 9012 3456
有效期:10/14
帐户持有人:鲍勃·琼斯
有效:真

(格式不正确 - 我不确定该怎么做,希望有人可以为我编辑 :))

我的问题是,在行中

String shortYear = Integer.toString(expiryYear).substring(2,4);

为什么以下方法不起作用:

toString(argument).substring(2,4) 

我原以为它已经起作用了(expiryYear 本质上被声明为 int 类型的实例变量)。我查阅了我的书(The official Java Tutorial also found online),似乎找不到任何东西。我什至不知道 Integer.toString,一位朋友在尝试使用 toString() 后告诉我,所以如果有人也能告诉我在哪里可以找到这些方法(我不要认为他们在我的书中)

public class CreditCard {

    private int expiryMonth;
    private int expiryYear;
    private String firstName;
    private String lastName;
    private String ccNumber;

    public CreditCard(int expiryMonth, int expiryYear, String firstName, String lastName, String ccNumber) {
        this.expiryMonth = expiryMonth;
        this.expiryYear = expiryYear;
        this.firstName = firstName;
        this.lastName = lastName;
        this.ccNumber = ccNumber;
    }

    public String formatExpiryDate() {
        String shortYear = Integer.toString(expiryYear).substring(2, 4);
        String expiryDate = expiryMonth + "/" + shortYear;
        return expiryDate;
    }

    public static void main(String[] args) {
        CreditCard cc1 = new CreditCard(10, 2014, "Bob", "Jones", "1234567890123456");

        System.out.print(cc1.formatExpiryDate());
    }
}

【问题讨论】:

  • 因为你没有带参数的toString 函数。
  • 要使用这个函数需要定义toString,它不像过程语言(比如C),是OOP
  • 不是 toString 一个公共方法,它是对象类的一部分(它是每个实现类的超类),所以我应该能够访问它?还是我在这里想错了?
  • fwiw 你可以使用year % 100 来获取年份的最后两位数字(作为整数)
  • toString 确实是object 的方法,但是它没有定义参数。为了让它调用object 上的方法,你必须在不带任何参数的情况下调用它,它的行为可能会有所不同。

标签: java class object tostring


【解决方案1】:

试试String.valueOf(expiryYear).substring(2,4)

【讨论】:

  • 是的另一个 DBZ 粉丝:D。论题;感谢您的回复-您有任何链接或任何我可以找到这些功能的地方吗?他们肯定喜欢对我有用。
  • @Tazman Oracle 记录了核心 Java 类的所有内容。如果你需要一些搜索“类”java api
猜你喜欢
  • 1970-01-01
  • 2022-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 2018-11-07
  • 2022-11-20
  • 1970-01-01
  • 2021-08-05
相关资源
最近更新 更多