zoukankan      html  css  js  c++  java
  • 正则表达式&自定义异常 典型案例

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Test
    {
    
    	public static void main(String[] args)
    	{
    		System.out.println(oper(" 12.3+213.1"));
    
    	}
    
    	public static float oper(String s)
    	{
    		Float res = null;
    		Pattern p = Pattern
    				.compile("\s*(\d+)(\.*)(\d+)\s*(\+|-|\*\/)\s*(\d+)(\.*)(\d+)\s*");
    		Matcher m = p.matcher(s);
    
    		boolean b = m.matches();
    		if (!b)
    		{
    			throw new couldNotCaculateException("匹配错误");
    		}
    
    		String s1 = m.group(1) + m.group(2) + m.group(3);
    		String s2 = m.group(5) + m.group(6) + m.group(7);
    
    		Float f1 = Float.parseFloat(s1);
    		Float f2 = Float.parseFloat(s2);
    		if ("+".equals(m.group(4)))
    		{
    			res = f1 + f2;
    		} else if ("-".equals(m.group(4)))
    		{
    			res = f1 - f2;
    		} else if ("*".equals(m.group(4)))
    		{
    			res = f1 * f2;
    		} else if ("/".equals(m.group(4)))
    		{
    			if (f2 == 0)
    			{
    				throw new couldNotCaculateException("除数不能为o");
    			}
    			res = f1 / f2;
    		}
    
    		return res;
    	}
    
    }
    
    class couldNotCaculateException extends RuntimeException
    {
    
    	private static final long serialVersionUID = -1127307315212919888L;
    
    	public couldNotCaculateException(String msg)
    	{
    		super(msg);
    	}
    }
    


     
  • 相关阅读:
    SQL数据库常用命令
    软件测试基础学习
    单链表面试题集合
    常见算法排序,冒泡排序,快排,堆排,归并排序
    CSS学习笔记(2)
    CSS学习笔记(1)
    sublime快捷键
    Sublime Text 中文输入法无法跟随怎么办
    网站收集
    Centos7安装Jenkins
  • 原文地址:https://www.cnblogs.com/xmc0551/p/5645579.html
Copyright © 2011-2022 走看看