Java使用的注意事项(一)(String)、toString、String.valueOf以及int之间的注意事项等问题

提示:写项目需求碰见的Bug


前言

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));//自动四舍五入。

总结

做项目中碰见一些基础的东西,记录下笔记。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值