`
suko
  • 浏览: 72437 次
  • 性别: Icon_minigender_1
  • 来自: 富安
社区版块
存档分类
最新评论

java的一些小方法

阅读更多
一、取余数
// java api计算余数
public static int remainder(int dividend, int divisor) {
	return dividend - dividend / divisor * divisor;
}

// 自写方法计算余数
public static int remainder2(int divident, int divisor) {
	if (divident < divisor) {
		return divident;
	}
	while (true) {
		divident = divident - divisor;
		if (divident < divisor) {
			break;
		}
	}
	return divident;
}	



二、十进制转换成二进制
// 十进制转换成二进制
public static String tenToTow(int num) {
	String str = "";
	int yushu;
	while (true) {
		yushu = num % 2;
		num = num / 2;
		str = yushu + str;
		if (num == 1 || num == 0) {
			str = num + str;
			break;
		}
	}
	return str;
}


三、加减乘除及四舍五入
/**
	 * 提供精确的加法运算。
	 * 
	 * @param v1 被加数
	 * @param v2 加数
	 * @return 两个参数的和
	 */

	public static double add(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.add(b2).doubleValue();
	}

	/**
	 * 提供精确的减法运算。
	 * 
	 * @param v1 被减数
	 * @param v2 减数
	 * @return 两个参数的差
	 */

	public static double sub(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.subtract(b2).doubleValue();
	}

	/**
	 * 提供精确的乘法运算。
	 * 
	 * @param v1 被乘数
	 * @param v2 乘数
	 * @return 两个参数的积
	 */

	public static double mul(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.multiply(b2).doubleValue();
	}

	/**
	 * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。
	 * 
	 * @param v1 被除数
	 * @param v2 除数
	 * @return 两个参数的商
	 */

	public static double div(double v1, double v2) {
		return div(v1, v2, DEF_DIV_SCALE);
	}

	/**
	 * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
	 * 
	 * @param v1 被除数
	 * @param v2 除数
	 * @param scale 表示表示需要精确到小数点以后几位。
	 * @return 两个参数的商
	 */

	public static double div(double v1, double v2, int scale) {
		if (scale < 0) {
			throw new IllegalArgumentException("The   scale   must   be   a   positive   integer   or   zero ");
		}
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}

	/**
	 * 提供精确的小数位四舍五入处理。
	 * 
	 * @param v 需要四舍五入的数字
	 * @param scale 小数点后保留几位
	 * @return 四舍五入后的结果
	 */

	public static double round(double v, int scale) {
		if (scale < 0) {
			throw new IllegalArgumentException("The   scale   must   be   a   positive   integer   or   zero ");
		}
		BigDecimal b = new BigDecimal(Double.toString(v));
		// BigDecimal one = new BigDecimal("1");
		return b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}


四、日期转换
/**
	 * <p>
	 * Discription:转换日期为字符串
	 * </p>
	 * 
	 * @param date 日期对象
	 * @param dateFormat 格式,默认为yyyy-MM-dd HH:mm:SS
	 * @return
	 */
	public static String formatDate(Date date, String dateFormat) {
		SimpleDateFormat sdf = new SimpleDateFormat();
		if (dateFormat == null) {
			dateFormat = "yyyy-MM-dd HH:mm:SS";
		}
		if (date != null) {
			sdf.applyPattern(dateFormat);
			return sdf.format(date);
		}
		return null;
	}

/**
	 * <p>
	 * Discription:转换字符串为日期对象
	 * </p>
	 * 
	 * @param dateStr 日期字符串
	 * @param dateFormat 格式,默认为yyyy-MM-dd HH:mm:SS
	 * @return
	 */
	public static Date parseDate(String dateStr, String dateFormat) {
		if (dateFormat == null) {
			dateFormat = "yyyy-MM-dd HH:mm:SS";
		}
		if (isNotBlank(dateStr)) {
			try {
				return DateUtils.parseDate(dateStr, new String[] { dateFormat });
			}
			catch (DateParseException e) {
				LOGGER.warn("convert string to date error: " + dateStr + " with format: " + dateFormat);
			}
		}
		return null;
	}

	/**
	 * <p>
	 * Discription:转换字符串为日期对象
	 * </p>
	 * 
	 * @param dateStr 日期字符串
	 * @param 支持 yyyy-MM-dd HH:mm:ss, yyyy-MM-dd HH:mm, yyyy-MM-dd, yyyy-MM-dd'T'HH:mm:ss 格式字符串时间
	 * @return
	 */
	public static Date parseDate(String dateStr) {
		String[] adageDateFormats =
				new String[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd", "yyyy-MM-dd'T'HH:mm:ss" };
		if (isNotBlank(dateStr)) {
			try {
				return DateUtils.parseDate(dateStr, adageDateFormats);
			}
			catch (DateParseException e) {
				LOGGER.info("convert string to date error: " + dateStr);
			}
		}
		return null;
	}



五、字符串非空验证
/**
	 * <p>
	 * Discription:检查字符串不为NULL,也不为空字符串
	 * </p>
	 * 
	 * @param value
	 * @return
	 */
	public static boolean isNotBlank(Object value) {
		return !JSONNull.getInstance().equals(value)
				&& !(value instanceof String && ((String) value).trim().equals(""));
	}


六、判断字符串是否为整数
public static boolean isInteger(String str) {
		try {
			Integer.valueOf(str);

		}
		catch (Exception e) {
			return false;
		}
		return true;

	}


七、银行家四舍五入法则
规则:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
/**
	 * <p>
	 * Discription:[银行家舍入法则]
	 * </p>
	 * 
	 * @param b
	 * @return
	 */
	public static BigDecimal roundOfBanker(BigDecimal b) {
		return b.setScale(2, RoundingMode.HALF_EVEN);
	}
分享到:
评论

相关推荐

    java的类别方法(格式:PPT 字体:繁体)

    第4章 Java的类别方法 4-1 模组化程式设计 4-2 程序是一个黑盒子 4-3 Java的类别方法 4-4 Java的类别变数和变数范围 4-5 类别方法的过载 4-6 递回程式设计 4-7 Math数学类别的类别方法 4-1 模组化程式设计-模组 模组...

    java批量插入Oracle数据方法

    java批量插入方法代码和一些注释

    Java代码实现随机生成汉字的方法

    今天小编就为大家分享一篇关于Java代码实现随机生成汉字的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    JAVA_API1.6文档(中文)

    javax.naming.spi 提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持。 javax.net 提供用于网络应用程序的类。 javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM ...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java小游戏集合

    包含java编写的 五子棋 贪吃蛇 俄罗斯方块 扫雷等小游戏 有不同编写方法特在此稍作汇总,有兴趣的朋友可以借鉴一下,也可以把其中的一些作为论文形式哦。

    java代码-使用java解决Java中保留小数点的方法的源代码

    java代码-使用java解决Java中保留小数点的方法的源代码 ——学习参考资料:仅用于个人学习使用!

    java学生管理系统-数据库小项目

    学生管理系统,本项目是用java写的用的mysql数据库,主要用来练习数据库方法的一些知识

    java弹球小程序

    java弹球小程序桌面弹球是游戏中常见的游戏,从以前的掌上游戏机到如今的手机游戏,都是一个十分经典的游戏。 玩家控制一个可以左右移动的挡板去改变运动中小球的移动方向,目的是用小球消除游戏屏幕中的所有 障碍物...

    java api最新7.0

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...

    Java开发技术大全(500个源代码).

    firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 accumulationByDoWhile.java 用do~while语句写的累加程序 ...

    Java 1.6 API 中文 New

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java开发适合暑假降温的食材以及方法小游戏代码.docx

    # Java开发适合暑假降温的食材以及方法小游戏代码 这是一个基于Java开发的小游戏,旨在帮助玩家了解适合暑假降温的食材以及制作方法。 ## 游戏介绍 炎炎夏日,天气炎热,很多人都会想寻找一些适合降温的食材和...

    一些Java中不为人知的特殊方法.docx

    他们发现,使用immutator(这个项目探索了Java的一些不为人知的细节)生成的Java代码使用volatile了作为方法的关键字,而这样的代码没法通过编译。结果就是这根本没法用。 这是怎么回事?syntethic和bridge方法又是...

    Java基础知识点总结.docx

    Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java...

    java3d的一些练习demo

    这是我刚刚学习JAVA3D时编的一些小程序,拿出来和大家共享。在编一个随鼠标平移而运动的小球时,需要重写mousebehavior 类中的方法,还没搞通,望会者指教

    (超赞)JAVA精华之--深入JAVA API

    1.4 java中的一些常用词汇 1.5 J2SE学习中的30个基本概念 1.6 Java线程 1.7 Java 5.0多线程编程 1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象类与接口的区别 1.11 Java变量类型间的相互转换 2 JAVA与WEB 2.1 ...

    小升初需要提升的学习方法和Java小游戏设计.docx

    以下是一些小升初需要提升的学习方法: 1. 制定合理的学习计划,合理安排时间,保证每个学科都有足够的时间复习。学生可以根据自己的情况,制定一份详细的学习计划,包括每天的学习任务和时间分配,以确保在考试前...

    Java期末考试题(含答案)

    《JAVA语言程序设计》期末考试模拟试题 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序...3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。。。。。

Global site tag (gtag.js) - Google Analytics