呃。。。好象可以用 java.text.DecimalFormat。。。先研究一下这个类。
这个是旧的,有问题:
/**
* 将数字转为指定长度的字符串,如果位数不够,添加前缀 0
* @param value
* @param length
* @return
*/
private static String i2s(int value, int length)
{
// System.out.println("value:" + value);
// System.out.println("length:" + length);
String s = String.valueOf(value);
if(s.length()>length)
{
throw new RuntimeException("length is too short.");
}
else if(s.length()==length)
{
return s;
}
else
{
char[] cc = new char[length];
int i=0;
for(; i<length - s.length(); i++)
{
cc[i] = '0';
}
for(; i<length; i++)
{
//System.out.println(i);
cc[i] = s.charAt(length - i - 1); //这里容易出错:length - i - 1
}
return new String(cc);
}
}
private static void testI2s()
{
for (int i = 0; i < 1050; i++) {
System.out.println(i2s(i, 3));
}
}
这个是新的,改好了:
/**
* 将数字转为指定长度的字符串,如果位数不够,添加前缀 0
*
* @param value
* @param length
* @return
*/
private static String i2s(int value, int length) {
//System.out.println("value:" + value);
//System.out.println("length:" + length);
String s = String.valueOf(value);
//System.out.println("s:" + s);
int slen = s.length();
if (slen > length) {
throw new RuntimeException("length is too short.");
} else if (s.length() == length) {
return s;
} else {
char[] cc = new char[length];
int i = 0;
for (; i < length - slen; i++) {
//System.out.println("0 i:" + i);
cc[i] = '0';
}
for (; i < length; i++) {
//cc[i] = s.charAt(length - i - 1); // 这里容易出错:length - i - 1
int idx = i-(length-slen); // 这里容易出错:length - i - 1
cc[i] = s.charAt(idx);
//System.out.println("i:" + i + " idx:" + idx);
}
i = 0;
// for (; i < length; i++) {
// System.out.println("cc[" + i + "]:" + cc[i]);
// }
return new String(cc);
}
}
private static void testI2s() {
for (int i = 0; i < 1050; i++) {
//for (int i = 10; i < 15; i++) {
//System.out.println("i2s:" + i2s(i, 3));
//System.out.println();
System.out.println(i2s(i, 3));
}
}
DecimalFormat 版
private static String i2s_02(int value, int length)
{
//java.util.Formatter
//DecimalFormat df = new DecimalFormat("###");
//DecimalFormat df = new DecimalFormat("000");
char[] cc = new char[length];
int i=0;
for(i=0; i<length; i++)
{
//cc[i] = '#';
cc[i] = '0';
}
DecimalFormat df = new DecimalFormat( new String(cc) );
String s = df.format(value);
if(s.length()>length)
{
throw new RuntimeException("length is too short.");
}
return s;
}
private static void testI2s_02()
{
for (int i = 0; i < 1050; i++) {
System.out.println(i2s_02(i, 3));
}
}
分享到:
相关推荐
"截取指定长度的字符串"这个主题涉及到的是如何从一个字符串中提取出特定长度的部分。这在处理用户输入、数据展示、信息提取等多个场景中都非常常见。接下来,我们将深入探讨这个知识点。 首先,让我们明确什么是...
Java字符串长度不够,将其前面补0或者后面补0,适用于字典序比较前,将要比较字符串的位数保持一致,再进行比较。
在C#编程语言中,处理字符串是常见的任务之一,其中包括删除字符串中的特定部分或子字符串。本篇文章将详细探讨如何在C#中实现这一功能,包括多种方法和实用技巧。 首先,C#提供了多种内置方法来操作字符串,比如`...
判断汉字函数.c 函数功能:检查指定长度字符串中汉字的完整性
标题中的“获取一个字符串中的数字组”是指从包含数字和非数字字符的字符串中提取连续的数字,并将它们作为整数处理。描述中提到的任务是输入一个字符串,例如"a123x456_17960? 302tab5876",从中找出所有的连续数字...
在IT领域,生成指定长度的随机字符串是一项常见的需求,它广泛应用于密码生成、测试数据填充、安全令牌等领域。本文将深入探讨如何生成这样的随机字符串,并介绍相关编程语言的实现方法。 首先,我们要理解随机字符...
3. **模式匹配**:在遍历过程中,如果当前字符是数字,那么将这个数字与上一个字符进行比较,如果也是数字,则增加当前数字串的长度。每次比较后,都比较当前数字串长度和最长数字串长度,更新最长数字串长度。 4. ...
本篇将详细介绍如何在C#中按照字节长度截取字符串,并结合正则表达式进行操作。 首先,理解字节长度的重要性。在ASCII编码中,一个字符占据一个字节,但在Unicode(如UTF-8或UTF-16)编码中,一个字符可能占用多个...
本文档旨在详细介绍如何通过自定义函数在PostgreSQL数据库中实现一种特殊的排序方式:对于以数字结尾的字符串,首先将其分为两部分,一部分为非数字字符串,另一部分为数字;然后根据这两部分分别进行排序。具体而言...
`Str`函数可以将数值转换为字符串,并允许指定小数位数和填充字符。 4. **格式化输出**:更高级的格式化操作可能涉及`Format`函数,它可以按照指定的格式模板生成字符串,如日期、数字的格式化。例如,`Format("%...
然后,我们遍历字节数组,使用`ToString("x2")`将每个字节转换为两位的十六进制字符串,并添加到`StringBuilder`对象中。 二、十六进制串反向转回原字符串 从十六进制串还原字符串,我们需要做相反的操作:首先将...
本文档将详细介绍从字符串中提取连续的字符数字转换为整数的方法,並提供了完整的源代码,适合于那些想要编码实现字符串中提取连续的字符数字转换为整数的同学。 知识点1:字符串处理 在本文档中,我们使用了C语言...
4. **结束标志**:在字符串末尾添加终止符 `'\0'`。 5. **返回结果**:返回转换后的字符串指针。 **示例代码**: ```c char* toStr(int num, char precition) { static char str[10]; char i; if (num < 0) { ...
以下将详细讲解如何在Java中进行字符串长度的判断以及如何截取字符串。 首先,创建一个字符串对象通常使用`String`类的构造函数或者双引号括起来的字符串字面量。例如: ```java String panduan = "你好"; ``` 在...
字符串比较问题 Description ?问题描述: 对于长度相同的2 个字符串A和B,其距离定义为相应位置字符距离之和。...将计算出的字符串A和B的扩展距离输出到文件output.txt。 Sample Input cmc snmn 2 Sample Output 10
【字符串处理与最长连续数字串】 在编程竞赛(OJ)中,"在字符串中找出连续最长的数字串"是一道典型的字符串处理问题。它要求我们从一个给定的字符串中找到最长的一段连续的数字序列。这个问题涉及到字符串遍历、...
3. 进位计算:如果字符串包含多个字符,需要根据16进制的进位规则将它们组合成一个数字。例如,字符串"1A"表示十进制的26,因为1乘以16(16^1)加上A(10)等于26。 4. 函数封装:描述中提到的`String2Hex(CString ...
运用JAVAScript自定义函数,实现数字字符的格式化转换,在实际网站开发中,有很多地方可以适用,不难却很实用。
汉化软件好多地方必须设置字符串长度值,不设置正确功能就失效,所以这小工具,希望对大家有帮助。 功能用途:计算字符串的长度,并以十六进制显示 什么是Hex反序:比如说字符长度是 0123,在文件中实际上是 2301