java大神 字符串的转换基本数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java大神 字符串的转换基本数据类型相关的知识,希望对你有一定的参考价值。
1. 字符串转换为数字java.lang中的Integer类调用其类方法public static int parseInt(String s)可以将由“数字”字符组成的字符串,比如“876”转换为int数据类型,例如:
int x;
String s = "876";
x = Integer.parseInt(s);
类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调用相应的类方法
public static byte parseByte(String s) throws NumberFormatException
public static short parseShort(String s) throws NumberFormatException
public static long parseLong(String s) throws NumberFormatException
public static double parseDouble(String s) throws NumberFormatException
2. 可以使用下面的方法将数字转化为相应的字符串对象:
① valueOf方法
public static String valueOf(byte n)
public static String valueOf(int n)
public static String valueOf(long n)
public static String valueOf(float n)
public static String valueOf(double n)
例如:将形如123,12345.8等数值转换为字符串
String str = String.valueOf(123)
String str = String.valueOf(12345.8)
② 可以使用toString方法(一个对象通过调用该方法可以获取该对象的字符串表示)
使用java.lang包中的Byte、Integer、Short、Long、Float、Double类调用相应的类方法,Integer.toString、Double.toString,等等
比较常用的是Integer.toString("要进行转换的数字"),方法得到的是一个字符串的对象
例子:
int n = 123;
String m = Integer.toString(n);
System.out.println(m + 1);
Date date = new Date();
System.out.println(date.toString());
所以我们可以使用上面的方法将数字转化为一个字符串
3. 字符串与字符数组
① 将字符数组转换为字符串对象
使用String类的构造方法:String(char a[])和String(char a[],int offset,int length)
分别用数组a中的全部字符和部分字符构造字符串对象
例子:
char a[] = '1','2','3';
System.out.println(new String(a).length()); 参考技术A 将字符串参数作为有符号的
十进制
整数进行解析。除了第一个字符可以是用来表示负值的
ASCII
减号
'-'
('\u002D')
外,字符串中的字符都必须是十进制数字。
说白了,转换的字符必须是数字
实在要转你可以试试输出‘s’+1会有奇效
Java基本数据类型与类型转换
Java基本数据类型与类型转换文本关键字:8种、基本数据类型、整数类型、浮点类型、字符类型、布尔类型
一、基本数据类型
1. 概述
在Java中,所使用到的类型可以分为两大类,一类是基本数据类型,一共有8种,包含:整数,小数,字符,布尔。另外一类是引用类型,包含:字符串,数组以及各种Java类。
2. 整数类型
整数类型是一个很常用,也比较简单的类型,在计算机中以二进制的方式存储,其中有一位是符号位。
- byte:-2^7 ~ 2^7 - 1
- 1字节
- 8bit
- short:-2^15 ~ 2^15 - 1
- 2字节
- 16bit
- int:-2^31 ~ 2^31 - 1
- 4字节
- 32bit
-
long:-2^63 ~ 2^63 - 1
- 8字节
- 64bit
3. 浮点类型
对于浮点(小数)类型,存储的方式与整数有所不同,其中符号位固定为1位,另外两部分为指数部分和小数部分。我们都学过科学计数法的表示方式,对于十进制,小数点前的部分的取值范围为1-9,在存储前也会整理成二进制的形式,会变成(+/-)1.b × 2^a。那么指数部分对应的就是a,尾数部分对应的就是b。
对于float,指数部分为8位,尾数部分为23位。对于double,指数部分为11位,尾数部分为52位。
- float:约1.4 × 10^-45~3.4 × 10^38,精度为6~7位
- 4字节
- 32bit
-
double:约4.9 × 10^-432~1.7 × 10^308,精度为15~16位
- 8字节
- 64bit
4. 字符类型
对于字符类型,在进行存储时,也同样是一个整数,只不过在使用时会进行编码。说的直白一些就是,建立起了一个数字和字符之间的对应关系,只要明确字符对应的数字,或者直接将字符给出,都能够正确表示出一个字符。
-
char
- 2字节
- 16bit
5. 布尔类型
布尔类型是一个范围最小的数据类型,只用一个二进制位就可以来记录,0表示false-假,1表示true-真。
- boolean:true/false
- 1字节
- 1bit
6. 字面值
当我们在使用一个数据类型时,总会进行一些直接赋值的操作,完整的格式如下:
- 数据类型 变量名称 = 变量值
如:int i = 5;char c = ‘中‘;double = 3.14;那么出现在等号右侧的值就被称为字面值。
- 整数类型字面值
- 默认十进制(int类型):136,当非常大的数需要用long存储时结尾需要添加字母L/l
- 二进制(0b开头):0b101
- 八进制(0开头):073
- 十六进制(0x开头):0xAC23
- 浮点类型字面值
- 单精度(以F/f结尾):236.935f
- 双精度(默认小数类型):68263.2811
二、数据类型转换
1. 自动类型转换
图中黑色的部分,可以自动进行转换,并且不会出现任何使用上的问题,只不过存储数据空间需要变大些,这也就是由低精度向高精度的转换。
其中红色箭头的部分,也可以自动进行转换,即:代码上不需要添加转换的操作,且编译不会出现问题。但是在使用时会出现精度丢失的问题,因为对于整数类型,在其所支持的存储范围内精度都是可以保证的,而对于float和double类型,精度只有相应的6~7和15~16位,所以在使用时一定要注意!
2. 强制类型转换
那什么时候需要手动来进行类型转换呢?就是与箭头方向相反时,以及由高精度到低精度来进行赋值操作时,必须要手动进行强制转换。这意味着,你知道这其中的风险,并一定要这样做,那么无法被记录的字节将被直接截断和丢弃,最高位被识别为符号位。所以,只有当数据本身不会超出目标数据类型时,我们才会进行转换,否则有可能会得到各种奇怪的结果。
3. 表达式中的类型提升
当我们在使用表达式进行计算时,如最基本的四则运算,加减乘除。
short s1 = 40;
short s2 = 40;
short s3 = s1 + s2;// 该行编译错误,why?
short s4 = (short)(s1 + s2);// 编译通过
对于以上的情况,是因为出现了类型提升,当符号两侧出现整数时,运算结果的类型将被提升为默认的整数类型:int,而将int类型赋值给short是需要类型转换的。同样,运算符号两侧出现小数类型时,运算结果的类型将被提升为默认的浮点数类型:double,在赋值给其他变量时同样要进行类型转换。
以上是关于java大神 字符串的转换基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章
Java基础(36):String与基本数据类型之间的双向转换