数据库里有id这个字段varchar类型里面存放'591-699-999' 要求取出来之后+1 成'591-700-000' 到'591-799-999'依次类推.求个java算法 谢谢了.

解决方案 »

  1.   

    public String change(String s){
    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;}
      

  2.   

    楼上的好像有问题:
    ...
    int i=Integer.parseint(temp);
    ....难道不怕超过范围吗还有应该是:Integer.parseInt(temp);
      

  3.   

    可以每三位为一个单元处理。
    第一步,将数据库中取出来的字符型值以“-”分割成三个字符段,并转换为三个对应的int值。
        假设原字符串中从左到右的三个字段分别转换为数字a,b,c;
    第二步,将c+1,并作判断是否进位:如进位,置c为0,并处理b+1,依次对b和c做同样判断和处理。
    第三步,将数字a,b,c分别转换成String型,按原来格式用“-”连接后存入数据库。
      

  4.   

    public class TestAdd {
    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")); }
    }
    注意:上面代码没有考虑异常情况!
      

  5.   

    public String change(String s){
    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
      

  6.   

    to netboygg(菜菜):
    String s1 = new DecimalFormat().format(i).replace(",", "-");
      

  7.   

    hbwhwang(【生病了,好好休息中...】) 
    方法还是多此一举了
     {
             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);
              
              }
              }
      

  8.   

    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));
      

  9.   

    NUMBER FORMATE QUESTION!--->JAVA.TEXT.*