Java中流行的数据类型转换的简要指南。与PHP或JavaScript不同,Java是一种强类型编程语言。这实质上意味着每个变量都必须使用预定义的数据类型声明,并且之后不能更改。Java中有两种数据类型:原始数据类型-int、double、float、byte、long、boolean等。引用数据类型-Integer、Double、Float、Date、String、Object等。在本教程中,我们将重点关注原始数据类型的类型转换。String到IntString到int的转换有两种方法:Integer.parseInt()返回原始int和Integer.valueOf()返回Integer对象。Stringstr="1050";intinum=Integer.parseInt(str);//返回primitiveSystem.out.println(inum);Integeronum=Integer.valueOf(str);//returnobjectSystem.out.println(onum);String转long类似于int,我们可以通过方法Long.parseLong()或object将aString转为原始long值。LongLong.valueOf()StringlongStr="1456755";longilong=Long.parseLong(longStr);//返回primitiveSystem.out.println(ilong);Longolong=Long.valueOf(longStr);//返回objectSystem.out.println(olong);StringFloatStringA可以使用Float.parseFloat()方法转换为原始浮点值。Float.valueOf()方法可用于将aString转换为Float对象。StringfloatStr="49.78";floatifloat=Float.parseFloat(floatStr);//返回原语System.out.println(ifloat);Floatofloat=Float.valueOf(floatStr);//returnobjectSystem.out.println(ofloat);stringdouble和float数据类型可能看起来一样,但它们存储值的方式不同。float是单精度(32位或4字节)浮点数据类型,double是双精度(64位或8字节)浮点数据类型。可以使用方法将值String转换为值。同样,将a转换为对象。doubleDouble.parseDouble()Double.valueOf()StringDoubleStringdoubleStr="99.378";doubleidouble=Double.parseDouble(doubleStr);//返回primitiveSystem.out.println(idouble);Doubleodoouble=Double.valueOf(doubleStr);//返回对象System.out.println(oduble);如果在String或String转换期间不包含可解析值,则抛出NumberFormatException。intfloatdoubleNumberFormatExceptiontry{StringexeStr="14c";intexeInt=Integer.parseInt(exeStr);System.out.println(exeInt);}catch(NumberFormatExceptionex){System.out.println(ex.getMessage());}charStringtoBoolean方法可用于将String值转换为原始值。要转换为对象,您可以使用方法。booleanBoolean.parseBooleanBooleanBoolean.valueOf()StringtrueStr="true";StringfalseStr="false";StringrandomStr="java";System.out.println(Boolean.parseBoolean(trueStr));//trueSystem.out.println(Boolean.valueOf(falseStr));//falseSystem.out.println(Boolean.parseBoolean(randomStr));//falsestringtodateJava提供了用于格式化和解析日期的SimpleDateFormat类。它有以下两个重要方法:parse()-将字符串值转换为日期对象format()-将日期对象转换为字符串值在创建SimpleDateFormat类的实例时,您需要传递日期和时间模式,告诉实例应该如何解析或格式化日期。StringdateStr="10/03/2019";SimpleDateFormatformat=newSimpleDateFormat("dd/MM/yyyy");DatedateObj=format.parse(dateStr);System.out.println(dateObj);在上面的示例中,我使用dd/MM/yyyy模式来解析10/03/2019字符串。dd日MM表示两位数,月yyyy表示两位数,年表示四位。下面列出了SimpleDateFormat。完整列表请参考官方JavaDoc。以下是模式的一些示例,以及每个模式如何解析日期,反之亦然:yyyy/MM/dd<-->(2019/03/09)dd-MM-YYYY<-->(10-03-2019)dd-MMM-yy<-->(13-Feb-19)EEE,MMMMdd,yyy<-->(2019年3月9日,星期五)yyyy-MM-ddHH:mm:ss<-->(2019-02-2816:45:23)hh:mm:ssa<-->(11:23:36PM)yyyy-MM-ddHH:mm:ss.SSSZ<-->(2019-01-3121:05:46.555+0500)日期到字符串如上所述,SimpleDateFormat还支持将日期格式化为字符串。下面是一个将日期格式化为字符串的示例:Datedate=Calendar.getInstance().getTime();//或newDate()SimpleDateFormatdateFormat=newSimpleDateFormat("EEEE,MMMMdd,yyyyHH:mm:ss.SSSZ");StringformatStr=dateFormat.format(date);System.out.println(formatStr);以上代码段将根据您所在的位置打印以下内容:2019年3月10日星期日20:01:22.417+0500ISO8601字符串日期ISO8601是涵盖日期和时间相关数据交换的国际标准。有几种方法可以用ISO格式表示日期和时间:2019-03-30T14:22:15+05:002019-03-30T09:22:15Z20190330T092215Z这是一种将日期对象转换为JavaString中的ISO8601等效字符的方法示例:TimeZonetimeZone=TimeZone.getTimeZone("UTC");SimpleDateFormatisoFormat=newSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");isoFormat.setTimeZone(timeZone);StringisoFormatStr=isoFormat.format(新日期());System.out.println(isoFormatStr);以下是ISO格式的日期和时间模式:源代码:根据MIT许可从GitHub下载完整的源代码。结束语数据类型转换对于开发人员来说非常普遍。这些转换中的大多数都是微不足道的,并且为有经验的程序员所熟知。然而,字符串到日期的转换有点棘手,尤其是对于初学者而言。如果未正确指定架构,您可能会遇到错误。但是,如果您花时间记住这些模式,它可能会为您节省大量时间,同时弄清楚为什么某个强制转换没有编译或执行。
