String a = "999"; java.text.DecimalFormatSymbols dfs = new java.text.DecimalFormatSymbols(); dfs.setGroupingSeparator('-'); java.text.DecimalFormat df = new java.text.DecimalFormat("#,###",dfs); long l = df.parse(a).longValue(); System.out.println(l); System.out.println(df.format(++l));
String temp=s.replaceAll("-","");
int i=Integer.parseint(temp);
++i;
temp=String.valueOf(i);
String s1=temp.subString(0,3)+"-"temp.subString(3,6)+"-"+temp.subString(6);
return s1;}
...
int i=Integer.parseint(temp);
....难道不怕超过范围吗还有应该是:Integer.parseInt(temp);
第一步,将数据库中取出来的字符型值以“-”分割成三个字符段,并转换为三个对应的int值。
假设原字符串中从左到右的三个字段分别转换为数字a,b,c;
第二步,将c+1,并作判断是否进位:如进位,置c为0,并处理b+1,依次对b和c做同样判断和处理。
第三步,将数字a,b,c分别转换成String型,按原来格式用“-”连接后存入数据库。
public static String addOne(String s){
for (int i=s.length()-1;i>=0;i--){
char c=s.charAt(i);
if (c>='0'&&c<='9'){
c++;
if (c<='9'){
return s.substring(0,i)+c+s.substring(i+1,s.length());
}else{
return addOne(s.substring(0,i))+'0'+s.substring(i+1,s.length());
}
}
}
return null;
} public static void main(String[] args) {
System.out.println(addOne("591-699-999")); }
}
注意:上面代码没有考虑异常情况!
String temp=s.replaceAll("-","");
int i=Integer.parseint(temp);
++i;
temp=String.valueOf(i);
String s1=temp.subString(0,3)+"-"temp.subString(3,6)+"-"+temp.subString(6);
return s1;}
当字符是999-999-999的时候 转化就出问题了 变成了100-000-0000 而不是1-000-000-000
String s1 = new DecimalFormat().format(i).replace(",", "-");
方法还是多此一举了
{
String s="591-699-999";
String temp=s.replaceAll("-","");
int i=Integer.parseInt(temp);
++i;
temp=String.valueOf(i);
String s1=temp.substring(0,3)+"-"+temp.substring(3,6)+"-"+temp.substring(6);
System.out.println(s1);
}
}
java.text.DecimalFormatSymbols dfs = new java.text.DecimalFormatSymbols();
dfs.setGroupingSeparator('-');
java.text.DecimalFormat df = new java.text.DecimalFormat("#,###",dfs);
long l = df.parse(a).longValue();
System.out.println(l);
System.out.println(df.format(++l));