java中string转基本类型需通过包装类parsexxx()方法,如integer.parseint();注意空值和格式异常会抛numberformatexception,需try-catch或校验;boolean.parseboolean()仅识别"true"(不区分大小写);char需用charat(0)获取。

Java 中不能直接把 String 转成基本数据类型(如 int、boolean 等),但可以通过其对应的包装类提供的静态方法完成转换,本质是先转为包装类型,再通过自动拆箱得到基本类型。
使用包装类的 parseXxx() 方法
这是最常用、最推荐的方式。每个基本类型对应的包装类都提供了形如 parseXxx(String) 的静态方法,返回对应的基本类型值。
-
int:
Integer.parseInt("123")→ 返回int -
double:
Double.parseDouble("3.14")→ 返回double -
boolean:
Boolean.parseBoolean("true")→ 返回boolean(注意:非 "true" 字符串均返回false) -
long:
Long.parseLong("9999999999")→ 返回long -
short、byte、float 同理,分别用
Short.parseShort()、Byte.parseByte()、Float.parseFloat()
注意空值和格式异常
这些 parseXxx() 方法遇到 null 或格式不合法的字符串(如 "abc" 转 int)会抛出 NumberFormatException,务必做异常处理或提前校验。
- 建议用
try-catch包裹转换逻辑 - 可用
StringUtils.isNumeric()(Apache Commons)或正则简单判断是否为数字格式(注意负号、小数点等) -
Boolean.parseBoolean()对大小写不敏感,但只认"true"(其他全为false),若需严格解析,可考虑Boolean.valueOf(str).booleanValue()(对null返回false)或手动判断
用 valueOf() + 拆箱(间接方式)
例如 Integer.valueOf("123").intValue(),效果和 Integer.parseInt("123") 一样。区别在于:valueOf() 可能缓存常用值(-128 ~ 127),而 parseInt() 总是新建原始值;日常使用推荐直接用 parseXxx() 更简洁明确。
char 和 String 之间的特殊关系
char 不是数字类型,不能用解析方式转换。若字符串长度为 1,可用 str.charAt(0) 获取首个字符;若需把单字符字符串转 char,就用这个方法即可。不要尝试用 Character.parseChar() —— 这个方法不存在。











