java 怎样把char 转变为object_Java类型转换以及Object转成其他类型_爱可乐爱生活的博客-程序员宅基地

技术标签: java 怎样把char 转变为object  

Object转int

int count=(int)map.get("count")

int count=Integer.parseInt((String)map.get("count"));

int  count=Integer.parseInt(map.get("count").toString());

自动数据类型转换

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:

低--------------------------------------------->高

byte,short,char-> int -> long -> float -> double

运算中,不同类型的数据先转化为同一类型,然后进行运算,转换规则如下:

操作数1类型操作数2类型转换后的类型

byte、short、char

int

int

byte、short、char、int

long

long

byte、short、char、int、long

float

float

byte、short、char、int、long、float

double

double

强制数据类型转换

强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确,下面的例子可以说明这个问题。

public classDemo {

public static void main(String[] args){

int x;

double y;

x = (int)34.56 + (int)11.2; // 丢失精度

y = (double)x + (double)10 + 1; // 提高精度

System.out.println("x=" + x);

System.out.println("y=" + y);

}

}

运行结果:

x=45

y=56.0

仔细分析上面程序段:由于在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11 了,所以 x 的结果就是 45。在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的前面也被强制成 double 类型,所以也变成 10.0,所以最后 y 的值变为 56。

Object转String

方法1:采用 Object.toString()方法

请看下面的例子:

1 Object object = getObject();

2 System.out.println(object.toString());

注1

在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调 用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

方法2:采用类型转换(String)object方法

这是标准的类型转换,将object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如:

Object obj = new Integer(100);

String strVal = (String)obj;

在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,

Integer obj = new Integer(100);

String strVal = (String)obj;

如上格式代码,将会报语法错误。

此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。

方法3:采用String.valueOf(Object)

String.valueOf(Object)的基础是Object.toString()。但它与Objec.toString()又有所不同。在前面方法1的分析中提到,使用后者时需保证不为null。但采用第三种方法时,将不用担心object是否为null值这一问题。为了便于说明问题,我们来分析一下相关的源代码。Jdk里String. valueOf(Object)源码如下:

public static String valueOf(Object obj) {

return (obj == null) ? "null" : obj.toString();

}

从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。我们应当注意到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是

null!!!在使用过程中切记要注意。试想一下,如果我们用 if(String.valueOf(object)==null){System.out.println(“传入的值是null!”);}这样的语句将可能会发生什么问题。再想一下,向控制台输出时,在视觉上如下语句在执行的结果上有什么不同:

System.out.println(String.valueOf((Object)null)); 注2

System.out.println(null);

我们看到的输出将是一模一样的东西:null,但它们意义相同吗?

注1:光就System.out.println的使用来说,语句System.out.println(object.toString()); 换为System.out.println(object); 更好。此处如是用法主要是为了说明Object#toString()的用法。

注2:推荐使用System.out.println(String.valueOf((Object)null)); 不推荐使用System.out.println(String.valueOf(null));在使用重载方法时,这样做是一个好的习惯。

以上是对object对象转换为String的一些总结。

String转int

1). int i = Integer.parseInt([String]); 或

i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.

new Integer.valueof()返回的是Integer的对象。

Integer.parseInt() 返回的是一个int的值。

new Integer.valueof().intValue();返回的也是一个int的值。

Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。

而Integer.parseInt(String s)只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性。

Object转int

int a=1;

Object ao=a;

System.out.println((int)ao ); //也可以输出1.

int b=Inerger.parseInt(obj.toString());

JAVA强制类型转换

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33872754/article/details/114517123

智能推荐

std::string用法总结_平头小子的博客-程序员宅基地

c++stdstring在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化string类的字符操作:const

专用目录与存储位置_weixin_34362790的博客-程序员宅基地

专用目录与存储位置 这份附录列出了创建SharePoint团队Web站点或Microsoft FrontPage扩展Web站点时,向根Web站点或子站点中添加的文件夹与文件。 SharePoint团队Web站点文件与文件夹 文件夹文件用途 Default.htmSharePoint团队Web站点主页。 ...

Kaggle竞赛之-titanic学习笔记_kuxia0000的博客-程序员宅基地

为了督促自己学习数据建模,决定记录下自己的学习过程。从同学那里打听到有一个很不错的数据挖掘竞赛kaggle,准备从里面比较简单的titanic问题入手。这几天我会持续更新下我的学习记录。首先从ID3算法开始~

php把图片上传到页面上,php把 图片上传到 图片服务器_兔子的胡萝卜的博客-程序员宅基地

/*** 上传图片到服务器* @return [type] [description]*/publicfunctionupload_img(){if(IS_POST){$url= C(‘IMG_SERVER_URL‘).‘uploadImg.php‘; //图片API服务器$data = I(‘post.‘);$img_name= $data[‘img_name‘];if(!$img_name){...

dirsearch无法使用 爆出 ModuleNotFoundError: No module named ‘chardet‘ 等_tboswer的博客-程序员宅基地_dirsearch无法使用

出现以上错误原因是因为电脑没有安装对应的 库只需要一一安装就可以解决pip install chardetpip install cryptographypip install markupsafe

无线路由器服务器连接线,无线路由器连接有线路由器怎么设置?_吟澜的博客-程序员宅基地

我的问题是这样的,家里原来有一个有线路由器,有线路由器连接宽带正常上网。由于有线路由器不能提供无线wifi,因此又买了一个无线路由器回来。请问可以把新买无线路由器连接到有线路由器上面上网吗?如果可以的话,具体的设置方法是什么样子的?答:无线路由器是可以连接有线路由器上网的,具体的设置方法有2种:1、无线路由器作为二级路由器2、无线路由器作为无线AP无线路由器一、无线路由器作为二级路由器1、无线路由...

随便推点

Python随笔_孱弱Lynch的博客-程序员宅基地

内置函数评估函数 eval()去掉参数最外层引号,并执行余下语句eval(<字符串 or 字符串变量>)>>> eval("1+2")3>>> eval('print("Hello")')Hello浮点数处理round()round(x,d) 对x四舍五入,d是小数截取位数浮点数间运算及比较,用round()函数辅助&g...

SAP & Oracle EBS集成解决方案_weixin_33875564的博客-程序员宅基地

一.需求分析SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的亲耐。然而由于系统庞大、价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑:1.SAP如何实现“线上+线下"闭环流程 SAP用户外延流程设计以及二次开发流程面临挑战。 2.如何梳理业务流程 企业的制度、规则和 流程体系大多 散落在各个业务系统 中,管理 和 变更这些散落...

Raspbmc with WPA Enterprise (802.1x)_zhanglizhuo的博客-程序员宅基地

Since I own a Raspberry Pi, I experimented a lot with that incredible device. It has so many capabilities and for a price of 45 € to about 60 € (depends on your needs and if you want accessories) you

App Store 转让应用教程_生命接触的博客-程序员宅基地

1.在需要转让的App中点击“转让”按钮,如图所示:2.进入到转让协议界面,直接点击“continue”,如图所示:3.进入到接收者信息输入界面,如下图所示:4.Team ID可以用接收者的Apple ID在https://developer.apple.com登录后进入“Your Account”中查看,如下图所示:5.输入完接收者信息后,点击“continue”,如图所示:6.在“合同条款”界面

DHCP服务器的配置_weixin_34128839的博客-程序员宅基地

一、DHCP:动态主机配置协议二、DHCP的租约过程:DHCPdiscover、dhcpoffer、dhcprequest、dhcpack四个广播包。三、ipconfig/release:释放租约 ipconfig/renew:更新租约四、实验背景: 某公司的办公区域分两个部分,OfficeA有200台主机,officeB有50台主机,...

NTFS分区和FAT32分区区别_weixin_34346099的博客-程序员宅基地

1.1 NTFS分区和FAT32分区区别 FAT32: FAT32实际上是文件分区表采取的一种形式,它是相对于FAT16而言的。众所周知,Dos和Windows95采用的都是FAT16格式。那么为什么一定要推出FAT32呢?这主要是由其自身的优越性决定的。 首先,它可以大大地节约磁盘空间。文件在磁盘上是以簇的方式存放的,簇里存放了一个文件就不能再存放另外的文件。假如一个磁盘的分区大小为512...