一、取余数
// 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编程基础和实践能力的好方法。 首先,让我们深入了解一下Java编程的基础。Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)在1995年推出...
在Java开发过程中,经常会遇到一些细节问题,这些小技巧不仅能提高我们的工作效率,还能让我们编写的程序更加优雅。本文将详细介绍几个实用的Java小技巧及其应用场景。 #### 1. 设置面板不可拖动变化 在GUI设计中...
"一些Java小程序,总有适合的"这个标题暗示了我们有多个Java示例代码,这些代码可能涵盖了不同的功能和编程概念,非常适合初学者用来练习和理解Java编程。 描述中提到"奉献给那些初学者吧",这表明这些Java小程序...
在描述中提到的"方法调用的形式"是指将万年历的逻辑分解为多个小的方法,每个方法负责一部分功能。例如,我们可以有一个方法用于获取当前年份的天数,另一个方法用于计算某个月份的天数,还有的方法用于打印日历布局...
"一些比较有意思的Java小程序"这个标题暗示了我们将会探讨一系列趣味性强、易于理解的Java代码示例,这些示例通常适合Java初学者用来学习和实践编程概念。 在描述中提到的“不错的Java小程序”可能包括各种实用的小...
除了`MyFrame`之外,描述中还提到其他小游戏可能不完整,这暗示压缩包可能包含了一些未完成或者需要进一步开发的代码片段。这些未完成的游戏可以作为练习,让读者尝试自己去补充和完善,从而提升编程技能。 在学习...
这个日历小程序可能使用了`Calendar`类的一些关键方法,如`getInstance()`用于获取当前系统日期,`get()`和`set()`用于获取或设置日期字段,如年、月、日等,以及`add()`用于对日期进行增加或减少。 Swing中的`...
下面是解决该问题的一些方法: 原因分析 1. Java 虚拟机 (JVM) 内存过小:JVM 的默认堆大小是 64M,这可能不足以满足应用程序的需求。 2. 程序不严密,产生太多的垃圾:程序中的死循环、无限循环、内存泄露等问题...
通过这些小练习,初学者可以从实践中巩固JAVA基础知识,如类、对象、变量、方法、控制结构,同时也能接触到更高级的主题,如GUI编程、文件操作、加密解密、数据库交互等。完成这些项目,不仅能提高编程技巧,也有助...
在“一些简单实用的java小程序”这个主题中,我们可以深入探讨Java编程的基本概念、语法以及如何编写小型应用程序。 1. Java基础:每个Java小程序都是基于Java的基础语法构建的,包括变量声明、数据类型(如整型、...
在"学习java的一些小程序"这个主题中,我们主要探讨的是通过编写和分析简单的Java程序来掌握这门语言的基础和核心概念。这些小程序可以帮助初学者建立扎实的编程基础,同时也适合有经验的开发者进行回顾和实践。 1....
在“一些入门的java小程序”这个主题中,我们可以探索以下几个关键知识点: 1. **基础语法**:Java的基础语法是学习的起点,包括变量声明、数据类型(如int、double、String等)、运算符、控制流(如if语句、for...
"用java写的一些小例子"这个标题和描述暗示了我们将会探讨一些基础到进阶的Java编程示例。这些小例子通常用于教学目的,帮助初学者理解和掌握Java编程的核心概念。 在Java的学习过程中,我们可以从以下几个方面进行...
【描述】:根据提供的博文链接,虽然描述部分为空,但我们可以推断这篇博客可能分享了一些关于Java开发的小工具,比如JD-GUI和JarClassSearch。这些工具在Java开发过程中经常被用到,可以提供查看和理解Java字节码的...
### Java Heap Space 解决方法详解 #### 一、概述 在Java应用程序运行过程中,经常会遇到一个常见的错误提示:`java.lang.OutOfMemoryError: Java heap space`。这通常意味着Java虚拟机(JVM)的堆内存空间不足,...
在这些小程序中,可能会包含一些常见的功能,例如简单的数据输入输出、循环控制结构、条件判断逻辑等。这类源码对于编程初学者来说,是了解编程逻辑和程序结构的入门级材料。 在众多的Java小程序源码中,“excise”...
从给定的代码片段来看,这是一款基于Java的简单打字练习小游戏,主要目标是通过键盘输入来消除从屏幕...对于初学者而言,这款游戏不仅提供了一个有趣的项目实践机会,也帮助他们掌握了Java编程的一些核心概念和技术。
标签“java小游戏”暗示了这个项目可能包含了一些基本的编程概念,例如: 1. 类与对象:游戏中的每一个元素,如球、墙壁等,都可能被表示为独立的对象。 2. 继承:如果游戏包含多种类型的球,可能会用到继承来减少...
本文将深入探讨"Java案例开发和一些小技术"这一主题,结合提供的文件资源,为初学者提供宝贵的指导。 首先,我们来看《JDK应用说明.doc》。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、解释...
以下是一些关于Java SCREEN小程序及其相关知识点的详细解释: 1. **Java语言基础**:Java是一种跨平台的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)于1995年发布。它的主要特点是“一次编写,到处...