如何在Java中的构造函数中设置默认字符串格式?
我在Java中有一个使用字符串的构造函数。这个字符串总是一个数字如何在Java中的构造函数中设置默认字符串格式?,java,string,constructor,format,Java,String,Constructor,Format,我在Java中有一个使用字符串的构造函数。这个字符串总是一个数字 private final String number; public Number (String s) { this.number = s; } 因为这个字符串在我的例子中总是一个数字,所以我希望这个字符串总是使用某种格式。 例如,在我的主方法中创建一些新数字时: public static void main (String[] args) { Number one = new Number("1");
private final String number;
public Number (String s) {
this.number = s;
}
因为这个字符串在我的例子中总是一个数字,所以我希望这个字符串总是使用某种格式。
例如,在我的主方法中创建一些新数字时:
public static void main (String[] args) {
Number one = new Number("1");
Number ten = new Number("10");
System.out.println("Number one is: " + one);
System.out.println("Number ten is: " + ten);
}
我希望它能打印出如下内容:
Number one is: 000001
Number ten is: 000010
如何在构造函数中声明这种格式(在我的情况下,它必须在构造函数中)
编辑:同样,我知道有更好的实现方式,比如只避免使用字符串,但我使用字符串是有原因的(不要问我为什么)。我不会使用字符串,也不会将其称为
Number
,这是一种常见的内置类型。您甚至可以使用您的“number”类来扩展number
class MyNumber extends Number {
final long num;
MyNumber(long num) { this.num = num; }
public String toString() { return String.format("%06d", num); }
// other number methods.
}
你应该考虑使用<代码>静态工厂< /代码>创建你的数字,就像整数和BigDimple和其他方法一样。
< P>我不使用String,我不会称它为代码>代码< /COD>这是常见的内置类型。您甚至可以使用您的“number”类来扩展numberclass MyNumber extends Number {
final long num;
MyNumber(long num) { this.num = num; }
public String toString() { return String.format("%06d", num); }
// other number methods.
}
你应该考虑使用<代码>静态工厂< /代码>来创建你的数字,就像整数和BigDimple和其他方法一样。
你可以在类中重写ToStand方法。 public String toString() {
}
除非有其他原因格式化数字,否则您可以在类中重写tostring方法
public String toString() {
}
除非有其他原因格式化数字,否则“此字符串将始终是一个数字。”
我觉得这句话有点不对劲。如果在内部表示数字,则应使用数字类型。根据您的需要,它可以是double
、int
或十进制类型,如BigDecimal
当您需要在某处打印该数字时(并且只有在那时),您应该将其转换为字符串。Java提供了一组丰富的方法来格式化Java.text.NumberFormat
下的数字。“此字符串总是一个数字。”
我觉得这句话有点不对劲。如果在内部表示数字,则应使用数字类型。根据您的需要,它可以是double
、int
或十进制类型,如BigDecimal
当您需要在某处打印该数字时(并且只有在那时),您应该将其转换为字符串。Java提供了一组丰富的方法来格式化Java.text.NumberFormat
下的数字首先,在构造函数中,您可以添加一个解析步骤来检查字符串的有效性(防御性编程,抛出IllegalArgumentException或特殊异常子类)
然后,对于使用0填充数字:首先,在构造函数中,可以添加一个解析步骤来检查字符串的有效性(防御性编程,抛出IllegalArgumentException或特殊异常子类)
然后,对于用0填充数字:好的,我想我终于在这篇文章中找到了答案:
在我的情况下,这将意味着建造商:
public Number(String s) {
this.number = String.format("%06d", Integer.parseInt(s));
}
也许这对将来的任何人都有帮助。好的,我想我终于在这篇文章中找到了答案:
在我的情况下,这将意味着建造商:
public Number(String s) {
this.number = String.format("%06d", Integer.parseInt(s));
}
也许这对将来的任何人都有帮助。为什么必须在构造函数中?可以是静态final。为什么必须在构造函数中?可能是静态的。