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


     
  • 相关阅读:
    shuffle过程分析
    自定义分组
    自定义排序及Hadoop序列化
    MapReduce常见算法
    Partitioner
    Combiner
    自定义Counter使用
    WordCount_命令行运行时指定参数
    老的API实现WordCount
    Hadoop自定义类型处理手机上网日志
  • 原文地址:https://www.cnblogs.com/xmc0551/p/5645579.html
Copyright © 2011-2022 走看看