提示:写项目需求碰见的Bug
Java使用的注意事项(一)
前言
Java# 一、(String)、toString、String.valueOf的区别
1.(String)
将object转成String类型的值。
需要注意的是类型必须能转成String类型,(例如Integer类型就不行)否则抛出ClassCastException
备注:null值可以强制转换为任何java类类型,(String)null是合法的
2 .toString()
java.lang.Object类里已有public方法.toString(),而通常派生类会覆盖Object里的toString()方法,所以对任何java对象都可以调用此方法。
必须保证object不是null值,否则将抛出NullPointerException异常。
3 String.valueOf(Object)
弥补了前两者的不足,以.toString()方法为基础。
注意:当转换null时得使用String.valueOf((Object) null),而不是String.valueOf(null)(会报空指针错),
原因,可见:https://blog.csdn.net/a718515028/article/details/85306589
二、间隔多长时间执行一次
代码如下(示例):
import java.util.Date;
public class TimeTest {
public static void main(String[] args) {
intervalTimeOutput(5);
}
/**
* 间隔多长时间跑一次
*
* @param intervalTime 间隔的时间,单位秒
*/
public static void intervalTimeOutput(long intervalTime) {
// 是否继续循环的标识
boolean doJob;
// 当前时间的秒
long times = new Date().getTime() / 1000;
for (int i = 0; i < 10; i++) {
doJob = true;
// 每隔多少秒输出一次
while (doJob) {
// 现在的时间,单位秒
long currTime = new Date().getTime() / 1000;
// 每多少秒发一次
if ((currTime - times) < intervalTime) {
continue;
} else {
// 用于跳出当前while循环
doJob = false;
// 当前时间赋给初始时间
times = currTime;
// 以下是你需要执行的任务
System.out.println("输出:" + i + "当前时间:" + new Date());
}
}
}
}
}
三、Java 如何将String转化为Int
在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换.
例1:
String str = "123";
try {
int a = Integer.parseInt(str);
} catch (NumberFormatException e){
e.printStackTrace();
}
例2:
String str = "123";
try {
int b = Integer.valueOf(str).intValue()
} catch (NumberFormatException e){
e.printStackTrace();
}
在转换过程中需要注意,因为字符串中可能会出现非数字的情况,所以在转换的时候需要捕捉处理异常
四、JAVA除法带小数
本身如果使用的都是double的类型可以直接出来小数点
进一法: 即省略的位上只要大于零都要进一位 ;
四舍五入法: 即省略的位上小于五都要舍去,但省略的位上满五都要进一位 ;
还有一种
去尾法: 即省略的位上不管是否满五都要舍去 ;
1、除法带小数
例如:
int a = 8;
int b = 3;
int c = ((double)la)/b;
System.out.println(c);
系统打印:2.6666666666666665
2、进一法的实现
用Math.ceil()实现,例如Math.ceil(2.1),结果就是3.0
例如:
int a = 8;
int b = 3;
int c = ((double)la)/b;
int d = (int) Math.ceil(c);
System.out.println(d);
系统打印:3
五、百分数和小数转化
一.百分数转化为小数
import java.text.NumberFormat;//引入数值处理的包
import java.text.ParseException;//引入可能出现的异常包
String str="34.2%";//字符串类型的百分数
NumberFormat nf=NumberFormat.getPercentInstance();//NumberFormat是一个工厂,可以直接getXXX创建,而getPercentInstance() 是返回当前默认语言环境的百分比格式。
Number m=nf.parse(str);//提供了带有 ParsePosition 和 FieldPosition 的 parse 和 format 方法的形式,parse(xx)表示解析给定字符串开头的文本,生成一个数值。逐步地解析字符串的各部分
二.小数转化为百分数
例如:输入0.52----52%
输入0.1235----12.4%(注意:这个有四舍五入)
NumberFormat nf = NumberFormat.getPercentInstance();
nf.setMaximumFractionDigits(1);//这个1的意识是保存结果到小数点后几位,但是特别声明:这个结果已经先*100了。
System.out.println(nf.format(0.12345));//自动四舍五入。