数据类型转换

#常用类型转换

一、自动转换类型(低精度往高精度)
整型、实型(常量)、字符型数据可以混合运算。不同类型的数据先转化为同类型再进行运算
数据优先级排序:
           char
             ↓
Byte→short→int→long—›float→double
自动转换时,当两个不同类型的数据进行计算时,由于数据的精度不相同,低精度的数据类型会自行转换为高精度的数据类型
例如int类型数据与double类型数据相加,所得的结果应为float类型数据
在这里插入图片描述
在这里插入图片描述
此类型相关变量直接编写即可
个人建议,对变量类型不熟悉尽量还是进行需要多注意变量类型,多用同类型数据进行相应操作

二、强制类型转换(高精度往低精度)
接上文double与Integer类型数据相加报错
在这里修改为

Integer aInteger = 1;
double bFloat = 2.1;
Integer cInteger = aInteger + (int)bFloat;

在这里插入图片描述
此时数据相加则不会进行报错。但是由于是从高精度王低精度进行的转换,所以数据势必会有一定的损失。
(注:Integer是int的包装类,包含更多的方法,两者不是同一种数据类型,但是由于java存在的机制使得其可以共同存在)

三、特殊的类型转换
1.)整形 int 转换成String类型

  • 1.String s = String.valueOf(i);
  • 2.String s = Integer.toString(i);
  • 3.String s = “” + i;(""中间不包含空格,是以数据相加的方式进行了数据的转换)

2.)String类型 转 int类型

  • 1.int i = Integer.parseInt([String]);
  • 2.i = Integer.parseInt([String],[int radix]);
  • 3.int i = Integer.valueOf(my_str).intValue();

3.)布尔类型 转 String

  • boolean bool = true;
    String s = new Boolean(bool).toString();//将bool利用对象封装器转化为对象
  • boolean bool = true;
    String s = String.valueOf( bool );

4.)String 转 Date

  1. 导入 java.util.Date date=null;
  2. date=java.sql.Date.valueOf(String s);

项目问题记录
问题一:Java中将字符串转换成浮点数

String findpricevalue = request.getParameter("findprice");
System.out.println(findpricevalue);
double findprice = Double.valueOf(findpricevalue.toString());
System.out.println(findprice);

该段中使用request接收了来自jsp页面中的表格数据,但是由于表格数据中格式为text文本,应将其修改为浮点型数据,强制类型转换失败。
使用该方法则可以正确的将数据转换为浮点型。

问题二:
对于使用 List<Book> 定义的列表,由于返回值为 ArrayList<Book> 类型,接收端应为 ArrayList<Book>
该段直接采用了重新定义数组,并对其进行添加元素的操作来进行返回。

    // 搜索图书 根据价格搜索
    public ArrayList<Book> findBookByCondition(double findprice) {
        // List可以通过索引进行遍历,是可重复的
        List<Book> books = getBooks();
        ArrayList<Book> newBooks = new ArrayList<Book>();

        for (Book book : books) {
            // 如果价格小于搜索价格则返回
            if (book.getPrice() < findprice) {
                newBooks.add(book);
            }

        }
        return newBooks;
    }
ArrayList<Book> booklistsBooks = service.findBookByPrice(findprice);

若需进行强制类型转换,可参考图如下
类关系图
在这里插入图片描述

请添加图片描述
下图好像没啥用
请添加图片描述
非泛型转换
请添加图片描述
后期如有接触,将会持续更新,继续添加!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望风也等你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值