简单了解java类型转换常见的错误

类型转换虽然很简单,但是还是有些小细节要多注意。

String转化为int:

String test="123";
int number=Integer.parseInt(test);

String转化为Integer,可以如下所示。

也适用于int转化为Integer:

String test="123";
// String test="abc";  //会报错:NumberFormatException: For input string
Integer number=Integer.valueOf(test);

注意:不管是使用Integer.parseInt(),还是使用Integer.valueOf()将字符串转换成数字,

如果是非数字的字符串,会报错:NumberFormatException: For input string: ""

更安全的做法是,使用apache包的NumberUtils,如下:

String str="abc";
//str不为数字时,设置默认值为 0
int num = NumberUtils.toInt(str);
//str不为数字时,设置默认值为其他值,比如1
int defaultNum=NumberUtils.toInt(str,1);

String转BigDecimal:

String str1="2.30";
BigDecimal bd=new BigDecimal(str1);

Double转化为int:

Double test=new Double("1.23");  //Double初始化,最好用String保证精度
int result=test.intValue();

其他类型转String:

// Object obj="123";
String test=String.valueOf(obj);

注意:当String.valueOf()的参数obj为null时,返回值是字符串"null"!!而不是null。

如果希望obj为null时,返回"",可以使用apache-commons-lang的包,如下所示:

Object object=null;
String str = ObjectUtils.toString(object);  //object为null时,结果为""

如果希望obj为null时,返回null,如下:

ObjectUtils.toString(object,nullStr),第二参数nullStr表示,当object为null时,方法返回的值。

// Object obj=null;
Object object="123";
String str = ObjectUtils.toString(object,null);
//相当于 String str= (object == null) ? null : object.toString();

其他类型转Double:

Double rate= Double.valueOf(obj);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现字符串和日期类型相互转换的方法

    本文实例讲述了java实现字符串和日期类型相互转换的方法.分享给大家供大家参考,具体如下: Date inDate = new Date(); //获取当前日期 //建立一个一定格式的 SimpleDateFormat SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date = f.format(inDate); //将Date转化为字符串 System.out.println(date

  • java将String字符串转换为List<Long>类型实例方法

    在一些应用场景当中,我们可能会遇到以下的场景,我们要使用的类型是List类型,但是接收到的参数是Stirng类型如1,2,3,4等这样的形式 那么我们可以通过采用以下的代码完成以上需求的转换 private static Log log = LogFactory.getLog(Demo.class); @Test public void test() { String ids = "1, 3, 5, 7, 9"; // 首先去除空格 String idsWithNoBlank = id

  • java判断String类型是否能转换为int的方法

    使用正则表达式,效率较高 public boolean canParseInt(String str){ if(str == null){ //验证是否为空 return false; } return str.matches("\\d+"); //使用正则表达式判断该字符串是否为数字,第一个\是转义符,\d+表示匹配1个或 //多个连续数字,"+"和"*"类似,"*"表示0个或多个 } 以上这篇java判断String类型是

  • Java中对null进行强制类型转换的方法

    今天很好奇,对null进行强转会不会抛错.做了如下测试得到的结果是,如果把null强转给对象,是不会抛异常的,本身对象是可以为null的.但是如果是基本类型,比如 int i = (Integer)obj的强转,其实内部会调用intvalue方法去赋值给基本类型,所以这时候是会报错的. 代码如下 Object obj = null; Integer s1 = (Integer)obj; 上面能正常执行,即把null赋值给一个对象或者强行类型转换赋值给对象都是没有问题的.如果s1是 int的基本类

  • Java string类型转换成map代码实例

    背景:有时候string类型的数据取出来是个很标准的key.value形式,通过Gson的可以直接转成map 使用方式: Gson gson = new Gson(); Map<String, Object> map = new HashMap<String, Object>(); map = gson.fromJson(jsonString, map.getClass());#关键 String goodsid=(String) map.get("goods_id&qu

  • Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    存了一个时间类型(Date)的数据到mongo数据库中,但是前台显示的是一串数字.继而引发了如下问题: Java里面如何把 时间戳 1477387464495 转换为 2016-10-25 17:24:24 期望格式的日期字符串. 因为业务需要,在model里面有个Date类型的字段,然后需要按这个时间类型排序.但是在后台处理完之后,返回到前台,发现时间变成了13位数字,学名叫时间戳.不是我想要的具体时间,不适合展示啊.具体有如下 mongo数据库中存储时间类型的数据具体如下: 然后debug的

  • Java如何把int类型转换成byte

    这篇文章主要介绍了Java如何把int类型转换成byte,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String[] args) { int num = 130; // 此范围超过了byte定义 byte x

  • 简单了解java类型转换常见的错误

    类型转换虽然很简单,但是还是有些小细节要多注意. String转化为int: String test="123"; int number=Integer.parseInt(test); String转化为Integer,可以如下所示. 也适用于int转化为Integer: String test="123"; // String test="abc"; //会报错:NumberFormatException: For input string I

  • Java虚拟机常见内存溢出错误汇总

    一.引言 从事java开发的小伙伴在平时的开发工作中,应该会遇见各式各样的异常和错误,在实际工作中积累的异常或者错误越多,趟过的坑越多,就会使我们编码更加的健壮,就会本能地避开很多严重的坑.以下介绍几个Java虚拟机常见内存溢出错误.以此警示,避免生产血案. 二.模拟Java虚拟机常见内存溢出错误 1.内存溢出之栈溢出错误 package com.jayway.oom; /** * 栈溢出错误 * 虚拟机参数:-Xms10m -Xmx10m * 抛出异常:Exception in thread

  • JAVA中常见异常类

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了.数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,

  • 简单理解java泛型的本质(非类型擦除)

    背景 之前在网上发现这个问题 public class GenericTest { //方法一 public static <T extends Comparable<T>> List<T> sort(List<T> list) { return Arrays.asList(list.toArray((T[]) new Comparable[list.size()])); } //方法二 public static <T extends Compara

  • 简单了解Java关键字throw和throws的区别

    这篇文章主要介绍了简单了解Java关键字throw和throws的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 抛出异常有三种形式 throw throws 系统自动抛异常 一.系统自动抛异常 当程序语句出现一些逻辑错误.主义错误或类型转换错误时,系统会自动抛出异常:(举个栗子) public static void main(String[] args) { int a = 5, b =0; System.out.println(5/b

  • 初识Java一些常见的数据类型

    目录 1.Java是什么 2.为什么总有人说Java是最好的语言 3.一个简单的main函数 4.运行Java程序 5.Java书写 注意问题 6.数据类型与运算符 6.1变量和类型 6.2 整型变量(重点) 6.3长整型变量 6.4双精度浮点型变量 6.5单精度浮点型变量 6.6字符类型变量 6.7字节类型变量 6.8短整型变量 1.Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义,不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个

  • Java中的StackOverflowError错误问题及解决方法

    目录 StackOverflowError简介 Stack Frames和StackOverflowerError的发生方式 StackOverflowerError正在运行 解决StackOverflowError 结论 StackOverflowError简介 StackOverflowError可能会让Java开发人员感到恼火,因为它是我们可能遇到的最常见的运行时错误之一. 在本文中,我们将通过查看各种代码示例以及如何处理它来了解此错误是如何发生的. Stack Frames和StackO

  • 完美解决java.lang.OutOfMemoryError处理错误的问题

    原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多重复的对象实体: 4.使用的第三方软件中的BUG: 5.启动参数内存值设定的过小: 常见错误提示: 1.tomcat:java.lang.OutOfMemoryError: PermGen space 2.tomcat:java.lang.OutOfMemoryError: Java heap space 3

  • Java中常见的日期操作(取值、转换、加减、比较)

    Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处

  • DOS命令行下常见的错误信息

    大家在使用DOS的过程中,经常在命令行方式下遇到一些错误信息提示,由于往往是英文的,导致一些人看到后不知是怎么回事,更不知该如何解决了.下面,我就将常见的DOS命令行方式下的错误信息向大家介绍一下. [英文] Bad command or file name  [译文] 错误的命令或文件名 错误原因和解决: 这大概是大家最常见到的错误提示了,它的意思是输入的命令无效.当输入的命令既不是DOS内部命令,而且系统在查找路径或指定路径中找不到相应的可执行文件的话,就会出现此错误信息.您可以检查输入的命

随机推荐