Java:从字符串中提取整数、浮点型数值



public class Main {

 public static void main(String[] args)
 {
  String str = "abc345def";
  int i = getIntValue(str);
  System.out.println(str+"->"+i);
  
  String str2 = "abc345.678.91def";
  double d = getDoubleValue(str2);
  System.out.println(str2+"->"+d);
 }
 
 /**
  * 解析str,获得其中的整数
  * @param str
  * @return
  */
 private static int getIntValue(String str)
 {
  int r = 0;
  if(str!=null && str.length()!=0)
  {
   StringBuffer bf = new StringBuffer();
   
   char[] chars = str.toCharArray();
   for(int i=0;i<chars.length;i++)
   {
    char c = chars[i];   
    if(c>='0' && c<='9')
    {
     bf.append(c);
    }
    else if(c==',')
    {
     continue;
    }
    else
    {
     if(bf.length()!=0)
     {
      break;
     }
    }
   }
   try
   {
    r = Integer.parseInt(bf.toString());
   }
   catch(Exception e)
   {}
  }
  return r;
 }
 
 /**
  * 解析字符串获得双精度型数值,
  * @param str
  * @return
  */
 private static double getDoubleValue(String str)
 {
  double d = 0;  
  
  if(str!=null && str.length()!=0)
  {
   StringBuffer bf = new StringBuffer();
   
   char[] chars = str.toCharArray();
   for(int i=0;i<chars.length;i++)
   {
    char c = chars[i];   
    if(c>='0' && c<='9') 
    {
     bf.append(c);
    }
    else if(c=='.')
    {
     if(bf.length()==0)
     {
      continue;
     }
     else if(bf.indexOf(".")!=-1)
     {
      break;
     }
     else
     {
      bf.append(c);
     }
    }    
    else
    {
     if(bf.length()!=0)
     {
      break;
     }
    }
   }
   try
   {
    d = Double.parseDouble(bf.toString());
   }
   catch(Exception e)
   {}
  }
  
  return d;
 } 
}

输出:
abc345def->345
abc345.678.91def->345.678


  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值