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

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

 

你可能感兴趣的:(Java,java,c,null,string,class)