String和Integer转换

haowang21 2009-07-29 02:14:20
现在我数据库中的编号是以 000001 000002这样的格式
现在我添加一条记录,首先取出最大的编号,然后+1进行插入
比如我现在数据库中最大的是0000015 插入的编号就应该是000016
越简单越好。。能贴出具体代码
...全文
106 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuwen9 2009-07-29
  • 打赏
  • 举报
回复
先从数据库取出最大的来
以"000000019"为例

public class StringToInteger {
public static void main(String[] args) {
String str="000000019";
//得到总长度
int sLength=str.length();
//"000000019"转换成int 为19 再加1
int value=Integer.parseInt(str)+1;
//得到value转换为string后的长度
int vLength=(value+"").length();
//截取前面的0的个数
str=str.substring(0,sLength-vLength);
//得到结果
str=str+value;
System.out.println(str);
}
}
yang228 2009-07-29
  • 打赏
  • 举报
回复
在oracle数据库中测试过,直接select max(column) from table
对于varchar2型的也是可以直接得到最大的, 如lz的情况,可以直接
得到0000015. 其他数据库应该也没问题,没有测试。LZ可以试一下。
实在不行可以一条条全部搜出来然后转换再比较,对于这样的字符串
Integer.parseInt("00000015")结果可得15
asdujiayong 2009-07-29
  • 打赏
  • 举报
回复
可以设个计数器,每次插入一个就让计数器加一
nihuajie05 2009-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 solot 的回复:]
这问题和String Integer转换有什么关系?
数据库字段设置auto increment可以自增
[/Quote]
恩,这个就可以
wwwbbbecit 2009-07-29
  • 打赏
  • 举报
回复
支持5楼的写法,但Oracle数据库除外
SoloT 2009-07-29
  • 打赏
  • 举报
回复
如果自增列不能有00001这样的格式,我觉得保存在数据库中可以是1, 2, 3这样
取出的时候做一下格式转换就行了,这样在保存的时候方便多了
radeonxhl 2009-07-29
  • 打赏
  • 举报
回复
显然楼主的数据库里的编号字段是VARCHAR类型的(或是其他字符串类型)……
forandever 2009-07-29
  • 打赏
  • 举报
回复
如下:
public synchronized static String getSerialNumber(Integer number) {
String zeros = "0000000";
number = number + 1;
return zeros.substring( 0, 7 - number.toString().length()) + number;
}
haowang21 2009-07-29
  • 打赏
  • 举报
回复
自增列 可以是00001这种格式的么
lpzhaona 2009-07-29
  • 打赏
  • 举报
回复
在数据库中选择自增列就可以了
haowang21 2009-07-29
  • 打赏
  • 举报
回复
说的具体点可以么
SoloT 2009-07-29
  • 打赏
  • 举报
回复
这问题和String Integer转换有什么关系?
数据库字段设置auto increment可以自增

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧