java杂学知识点
s01串
https://ac.nowcoder.com/acm/problem/14356
Printf:
System.out.printf("%d*%d=%2d ",j,i,j*i);
DecimalFormat基本用法:
1.保留两位小数(Down 截断)
double num = 11.256; DecimalFormat df = new DecimalFormat("#.##"); //指定RoundingMode df.setRoundingMode(RoundingMode.DOWN); String str = df.format(num); double formatNum = Double.parseDouble(str); System.out.println(formatNum);
2.保留两位小数(四舍五入)
double num = 11.256; DecimalFormat df = new DecimalFormat("#.##"); //指定RoundingMode df.setRoundingMode(RoundingMode.HALF_UP); String str = df.format(num); double formatNum = Double.parseDouble(str); System.out.println(formatNum);
3.常用的RoundingMode
HALF_EVEN -----DecimalFormat默认的RoundingMode为RoundingMode.HALF_EVEN,也称为“银行家舍入法”,主要在美国使用。四舍六入,五分向相邻的偶数舍入。 以下例子为保留小数点1位,那么这种舍入方式下的结果。 1.15–>1.2 1.25–>1.2
HALF_UP — 四舍五入
HALF_DOWN — 五舍六入 2.5 —> 2 2.6 —> 3
DOWN — 直接截断
UP — 始终对非零舍弃部分前面的数字加 1
4.占位符
0表示数字占位符,实际位数不够时补零 比实际数字的位数多,不足的地方用0补上。 new DecimalFormat(“00.00”).format(3.14) //结果:03.14 new DecimalFormat(“0.000”).format(3.14) //结果: 3.140 new DecimalFormat(“00.000”).format(3.14) //结果:03.140 整数部分比实际数字的位数少,整数部分不改动 小数部分比实际数字的位数少,根据小数部分占位符数量保留小数 new DecimalFormat(“0.000”).format(13.146) //结果:13.146 new DecimalFormat(“00.00”).format(13.146) //结果:13.15 new DecimalFormat(“0.00”).format(13.146) //结果:13.15
#表示数字占位符,实际位数不够时不补零 比实际数字的位数多,不变 new DecimalFormat("##.##").format(3.14) //结果:3.14 new DecimalFormat("#.###").format(3.14) //结果: 3.14 new DecimalFormat("##.###").format(3.14) //结果:3.14 整数部分比实际数字的位数少,整数部分不改动 小数部分比实际数字的位数少,根据小数部分占位符数量保留小数 new DecimalFormat("#.###").format(13.146) //结果:13.146 new DecimalFormat("##.##").format(13.146) //结果:13.15 new DecimalFormat("#.##").format(13.146) //结果:13.15s
十进制数字转换成16进制
String hex= Integer.toHexString(numb);
字符串反转最快法:
public static String reverse1(String str) { return new StringBuffer(str).reverse().toString(); }SringBuffer类和String一样,也用来代表字符串,相比String, StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。当遇到插入、删除等字符串操作时,可以考虑用StringBuffer。
String和StringBuffer
StringBuffer初始化:
使用构造方法对StringBuffer初始化:
StringBuffer s = new StringBuffer(); //初始化出的StringBuffer对象是一个空的对象 StringBuffer s = new StringBuffer(“abc”); //初始化出的StringBuffer对象的内容就是字符串”abc”
StringBuffer与String的转换:
虽然StringBuffer和String都是操作字符串,但两者属于不同的类,不能直接兼容,相互转换的方法为:
String s = “abc”; StringBuffer sBuff1 = new StringBuffer(“123”); StringBuffer sBuff2 = new StringBuffer(s); //String转换为StringBuffer String s1 =sBuff2.toString(); //StringBuffer转换为String
StringBuffer中的append方法:
public class Test{ public static void main(String args[]){ StringBuffer result = new StringBuffer("123"); result.append("456"); resultsBuffer.append("789"); System.out.println(result); } }结果:
123456789StringBuffer中的reverse反转方法:
StringBuffer s = new StringBuffer(); System.out.println(s.reverse());Math包
Math.abs(a):取a的绝对值 Math.sqrt(a):取a的平方根 Math.cbrt(a):取a的立方根 Math.max(a,b):取a、b之间的最大值 Math.min(a,b):取a、b之间的最小值 Math.pow(a,b):取a的b平方 Math.ceil(a):向上取整 Math.floor(a):向下取整 Math.round(a):计算小数四舍五入 Math.PI:记录圆周率 Math.E:记录e的常量 Math.random:返回0,1之间的一个随机数[0,1)