已知:1.1对应101
     2.5对应205
     10.1对应1001
     10.10对应10010
     10.100对应100100
     100.10对应100010
。也就是说把小数点换成0形成一个字符串,现在需要反向操作,给一个字符串如"100100"要能正确解析为10.100,该怎么写啊?
(注:10.1和10.10等等并不是指小数,也是一个字符串,所以后面的0不能省略的)
     

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sixme】截止到2008-08-02 15:29:40的历史汇总数据(不包括此帖):
    发帖的总数量:12                       发帖的总分数:840                      每贴平均分数:70                       
    回帖的总数量:120                      得分贴总数量:39                       回帖的得分率:32%                      
    结贴的总数量:11                       结贴的总分数:740                      
    无满意结贴数:1                        无满意结贴分:50                       
    未结的帖子数:1                        未结的总分数:100                      
    结贴的百分比:91.67 %               结分的百分比:88.10 %                  
    无满意结贴率:9.09  %               无满意结分率:6.76  %                  
    值得尊敬

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=sixme
      

  2.   

    就是判断字符串中间的非零数字!
    string[] a;
    string[] b;
    int size=a.length;
    for i=size-1:0
        if a[i] != 0
           b[i] = ".";
        else
           b[i] = a[i];
        end
    end       
      

  3.   

    public class TestReplaceAll {
    public static void main (String args[]){
    String str1 = "100100"; 

    char[] charArray = str1.toCharArray();

    for (int i=0; i<charArray.length-1; i++){
    if ((charArray[i]=='0') && (charArray[i+1]!='0'))
    charArray[i]='.';
    }

    System.out.print(new String(charArray));
    }
    }
    10.100
    但是遇到100100100就无语了  因为你还是不知道那个0是.变来的
      

  4.   

    public class TestReplaceAll {
    public static void main (String args[]){
    String str1 = "100100"; 

    char[] charArray = str1.toCharArray();

    for (int i=0; i<charArray.length-1; i++){
    if ((charArray[i]=='0') && (charArray[i+1]!='0'))
    charArray[i]='.';
    }

    System.out.print(new String(charArray));
    }
    }
    10.100
    不过遇到100100100就无语了
      

  5.   

    我给个思路
    替换
    str.replaceAll("(0[1-9])","\.$1");也就是把 0+任意一个数字 比如 01 02 03
    替换为点加数字 .1 .2 .3
    这样的话
    100100100
    = >
    10 01 0 01 00
    =》
    10 ,1 0 ,1 00
    =>
    10.10.100
      

  6.   

    修正,正则的括号写错位置str.replaceAll("0([1-9])","\.$1"); 
      

  7.   

    String str = "100100100";
    String r = str.replaceFirst("0([1-9])","\\.$1");
      

  8.   

    String str = "100100100";
    String r = str.replaceFirst("0([1-9])","\\.$1");
      

  9.   

    根据你的要求.已知:1.1对应101
        2.5对应205
        10.1对应1001
        10.10对应10010
        10.100对应100100
        100.10对应100010 那么就用HASHTABLE来做就行了,应该没有什么难的.如还不清楚,可以给我发邮件.
      

  10.   


            public static String revert(String dest){
    StringBuffer sb = new StringBuffer(dest);
    int index = dest.length()-1;
    while(index>0){
    if(sb.charAt(index--)=='0')continue;
    while(sb.charAt(index)!='0')index--;
    sb.replace(index, index+1, ".");
    break;
    }
    return sb.toString();
    }