java实现小数精确两位,然后四舍五入方法:
详情参考 http://www.cnblogs.com/nayitian/p/3214178.html
例:
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
return bg.doubleValue();
或
return (int)(money+0.5);
另一种四舍五入的方法:Math.round()
例:
int a =3.1315929035585537;
a=(double)Math.round(a*100)/100;
康托展开 主要用于求当前排列在所有排列中排第几(一般从零开始),也可用于搜索标记状态
详情参考 http://blog.csdn.net/zhongkeli/article/details/6966805
java中进制的转换
参考地址: http://blog.csdn.net/swandragon/article/details/4926457
API上面的 Integer类中的方法
java中删除数组中的某个元素
参考地址:http://www.cnblogs.com/hanfeihanfei/p/6146077.html
import java.util.Arrays;
import java.util.Scanner;
public class ArraysDelete { public static void main(String[] args) {
//删除数组中的某一个元素的方法:
//把最后一个元素替代指定的元素,然后数组缩容
Scanner sc =new Scanner(System.in);
int[] arr = new int[]{1,2,4,5,9,8,0};
System.out.println(Arrays.toString(arr));
System.out.println("请输入要删除第几个元素:");
int n = sc.nextInt(); sc.close();
//把最后一个元素替代指定的元素
arr[n-1] = arr[arr.length-1];
//数组缩容
arr = Arrays.copyOf(arr, arr.length-1);
System.out.println(Arrays.toString(arr));
} }
运行结果:
[1, 2, 4, 5, 9, 8, 0]
请输入要删除第几个元素:
3
[1, 2, 0, 5, 9, 8]
日期的计算:
1.java中的Calendar类的用法
例:计算当前时间是星期几
import java.util.Calendar;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Calendar c =Calendar.getInstance();
Scanner sc = new Scanner(System.in);
c.set(sc.nextInt(),sc.nextInt()-1, sc.nextInt());
System.out.println(c.get(Calendar.DAY_OF_WEEK)-1);
}
}
使用calendar的时候,需注意,外国的第一天是周日,周二是第二天
外国的月份是从0开始的,如:一月需要设置月份为0
2.时间戳转换
/** * 日期格式时间戳 转换成字符串 * @param date 时间戳 * @param format 如:yyyy-MM-dd HH:mm:ss * @return */
public static String timeStamp2Date(String seconds,String format) { if(seconds == null || seconds.isEmpty() || seconds.equals("null")){ return ""; } if(format == null || format.isEmpty()){ format = "yyyy-MM-dd HH:mm:ss"; } SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(new Date(Long.valueOf(seconds+"000"))); }
/** * 日期格式字符串转换成时间戳 * @param date 字符串日期 * @param format 如:yyyy-MM-dd HH:mm:ss * @return */ public static String date2TimeStamp(String date_str,String format){ try { SimpleDateFormat sdf = new SimpleDateFormat(format); return String.valueOf(sdf.parse(date_str).getTime()/1000); } catch (Exception e) { e.printStackTrace(); } return ""; }
请参考 java 使用simpleDateFormat格式化日期 时间
java进制转换:
由十进制转化为其他进制:
十进制转成二进制 Integer.toBinaryString(int i)
十进制转成八进制 Integer.toOctalString(int i)
十进制转成十六进制: Integer.toHexString(int i)
由其他进制转换为二进制:
二进制转十进制 Integer.valueOf("1010",2).toString()
八进制转成十进制 Integer.valueOf("125",8).toString()
十六进制转成十进制 Integer.valueOf("ABCDEF",16).toString()
参考地址:http://www.cnblogs.com/icerainsoft/archive/2012/08/06/2624790.html
java回文快速办法:借助reverse()方法
parseLong(m, n):将n进制数m转化为十进制
long a = Long.parseLong(m, n);
long b = Long.parseLong(new StringBuilder(m).reverse().toString(), n);
if (a == b)
System.out.println("回文");
else
System.out.println("不是回文");
在判端两个字符串是否一样的时候,尽量使用equals方法判断,不要单单使用 == 这样有时候会出现问题
binarySearch :参考 http://blog.csdn.net/a1b2c3d4123456/article/details/51097161
此法为二分搜索法,故查询前需要用sort()方法将数组排序,如果数组没有排序,则结果是不确定的,另外
如果数组中含有多个指定值的元素,则无法保证找到的是哪一个。
⑴.binarySearch(object[ ], object key);
如果key在数组中,则返回搜索值的索引;否则返回-1或者”-“(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素索引。
卢卡斯定理
lucas(数论定理):
C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p (p为质数)