有没有更好的方法得到这个结果?如果num的位数比digits多,并且我觉得它应该在库的某个地方(像integer.toString(x,“%3d”)之类的),则该函数将失败
static String intToString(int num, int digits) {
StringBuffer s = new StringBuffer(digits);
int zeroes = digits - (int) (Math.log(num) / Math.log(10)) - 1;
for (int i = 0; i < zeroes; i++) {
s.append(0);
}
return s.append(num).toString();
}
从Java 1.5开始,您就可以使用string.format
方法。例如,要做与您的示例相同的事情:
String format = String.format("%0%d", digits);
String result = String.format(format, num);
return result;
在本例中,您使用以数字指定的宽度创建格式字符串,然后将其直接应用于数字。此示例的格式转换如下:
%% --> %
0 --> 0
%d --> <value of digits>
d --> d
因此,如果digits等于5,则格式字符串变为%05d
,它指定一个宽度为5个的整数(打印前导零)。有关转换说明符的更多信息,请参阅string.format
的Java文档。
格式(https://docs.oracle.com/javase/1.5.0/docs/api/Java/util/formatter.html#语法)
在您的情况下,它将是:
String formatted = String.format("%03d", num);
问题内容: 有没有更好的方法来获得此结果?如果num的位数比位数多,则此函数将失败,并且我认为它应该在库中的某个位置(例如Integer.toString(x,“%3d”)等) 问题答案: tring.format(http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax) 在你的情况下,它将是: 0 - to
问题内容: 我有一个字段是,保持日期值,我从转换到。 有些记录有八个字符,有些记录有七个字符。我想通过将前导零添加到具有7的前导零来使它们具有相同的长度。 8个字符的示例:12162003 7个字符的示例:5072004(需要前导零) 查询: 问题答案: 可以在更多情况下使用的功能是REPLICATE。它将一个X值的次数连接到一个字符串。 这将花费您的生日的长度,将其减去8,然后在前面放置多个前导
问题内容: 我目前正在用Java开发拍卖程序,我正在尝试确定截止日期,但是我的日期不断出现,因为(7/04/2013 11:22),有没有办法使用String.format添加前导零到今天是一位数字的日子? 稍后当我尝试对它进行子字符串处理时,这会导致我出现问题,并且它的长度少于17个字符。 预先感谢詹姆斯。 问题答案: 只需使用SimpleDateFormat
如何将svg添加到我的网页并通过css更改其颜色? 我试过: 但是运气不好。 请只提供CSS解决方案,我不需要任何后备,只支持新的浏览器。
我使用预定义的电话格式来格式化一个国家的电话号码,但返回了国家的重要号码。 美国电话# IL(以色列)电话# 我不能使用其他方法,因为此方法(formatByPattern)接受预定义的PhoneFormats 来自javadoc:phonenumberrutil。formatByPattern 使用客户端定义的格式化规则以指定格式格式化电话号码。请注意,如果电话号码的国家/地区呼叫代码为零或其他
问题内容: PHP-是否有一种快速,即时的方法来测试单个字符串,然后在前导零之前添加? 例: 问题答案: 您可以使用sprintf:http : //php.net/manual/en/function.sprintf.php 如果少于要求的字符数,它将仅添加零。 编辑:@FelipeAls指出: 处理数字时,应使用(而不是),尤其是在有可能出现负数的情况下。如果您仅使用正数,则两种方法都可以正常