1 字符串转换成数据
字符串转换成整数:
String MyNumber ="1234";
int MyInt = Integer.parseInt(MyNumber);
字符串转换成byte, short, int, float, double, long等数据类型,可以分别参考Byte, Short, Integer, Float, Double, Long类的parseXXX方法。
2 数据转换成字符串
整数转换成字符串:
int MyInt = 1234;
String MyString = "" + MyInt;
其它数据类型可以利用同样的方法转换成字符串。
3 十进制到其他进制的转换
十进制整数转换成二进制整数,返回结果是一个字符串:
Integer.toBinaryString(int i);
Integer和Long提供了toBinaryString, toHexString和toOctalString方法,可以方便的将数据转换成二进制、十六进制和八进制字符串。功能更加强大的是其toString(int/long i, int radix)方法,可以将一个十进制数转换成任意进制的字符串形式。
byte, short, float和double等数据类型,可以利用Integer或者是Long的toBinaryString, toHexString, to OctalString和toString方法转换成其他进制的字符串形式。
4 其它进制到十进制的转换
五进制字符串14414转换成十进制整数,结果是1234:
System.out.println(Integer.valueOf("14414", 5);
Integer和Long提供的valueOf(String source, int radix)方法,可以将任意进制的字符串转换成十进制数据。
5 整数到字节数组的转换
public static byte[] toByteArray(int number)
{
int temp = number;
byte[] b=new byte[4];
for (int i = b.length - 1; i > -1; i--)
{
b[i] = new Integer(temp & 0xff).byteValue();
temp = temp >> 8;
}
return b;
}
6 字节数组到整数的转换
public static int toInteger(byte[] b)
{
int s = 0;
for (int i = 0; i < 3; i++)
{
if (b[i] > 0)
s = s + b[i];
else
s = s + 256 + b[i];
s = s * 256;
}
if (b[3] > 0)
s = s + b[3];
else
s = s + 256 + b[3];
return s;
}
7 短整数与字节数组之间的相互转换
short与int之间的区别在于short是两个字节的,而int是四个字节的。因此,只需要将5 与6 中的范例程序小做改动,即可实现短整数与字节数组之间的相互转换。
8 字节数组转换成双精度浮点数
public double toDouble(byte[] b)
{
long l = 0;
Double D = new Double(0.0);
l = b[0];
l |= ((long)b[1]<<8);
l |= ((long)b[2]<<16);
l |= ((long)b[3]<<24);
l |= ((long)b[4]<<32);
l |= ((long)b[5]<<40);
l |= ((long)b[6]<<48);
l |= ((long)b[7]<<56);
return D.longBitsToDouble(l);
}
9 布尔类型转换成字符串
第一种方法是:
boolean bool = true;
String s = new Boolean(bool).toString();//将bool利用对象封装器转化为对象
s.equals("true");
/* 其中,toString方法是一个继承方法。java中所有的类都是object的继承,object的一个重要方法就是toString,用于将对象转化为字符串。*/
第二种方法是:
boolean bool = true;
String s = String.valueOf( bool );
首先,从代码长度上讲第二种方法明显要比第一种方法简洁;其次,第一种方法在转化过程中多引入了一个完全没有必要的对象,因此,相对第二种方法来说这就造成了内存空间的浪费,大大减慢了运行速度。所以,推荐使用第二种方法。
10 数字类型与数字类对象之间的转换
byte b = 169;
Byte bo = new Byte( b );
b = bo.byteValue();
short t = 169;
Short to = new Short( t );
t = to.shortValue();
int i = 169;
Integer io = new Integer( i );
i = io.intValue();
long l = 169;
Long lo = new Long( l );
l = lo.longValue();
float f = 169f;
Float fo = new Float( f );
f = fo.floatValue();
double d = 169f;
Double dObj = new Double( d );
d = dObj.doubleValue();
*****************************************************************************************************
i = Integer.parseInt([String],[int radix]);
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:
关键字 类型转换
出处
这是一个例子,说的是JAVA中数据数型的转换.供大家学习引
import java.sql.Date;
public class TypeChange {
public TypeChange() {
}
//change the string type to the int type
public static int stringToInt(String intstr)
{
Integer integer;
integer = Integer.valueOf(intstr);
return integer.intValue();
}
//change int type to the string type
public static String intToString(int value)
{
Integer integer = new Integer(value);
return integer.toString();
}
//change the string type to the float type
public static float stringToFloat(String floatstr)
{
Float floatee;
floatee = Float.valueOf(floatstr);
return floatee.floatValue();
}
//change the float type to the string type
public static String floatToString(float value)
{
Float floatee = new Float(value);
return floatee.toString();
}
//change the string type to the sqlDate type
public static java.sql.Date stringToDate(String dateStr)
{
return java.sql.Date.valueOf(dateStr);
}
//change the sqlDate type to the string type
public static String dateToString(java.sql.Date datee)
{
return datee.toString();
}
{
java.sql.Date day ;
day = TypeChange.stringToDate("2003-11-3");
String strday = TypeChange.dateToString(day);
System.out.println(strday);
}
}
JAVA中常用数据类型转换函数
虽然都能在JAVA API中找到,整理一下做个备份。
Byte static byte parseByte(String s)
Byte static String toString(byte b)
Character static String to String (char c)
Short static Short parseShort(String s)
Short static String toString(Short s)
Integer static int parseInt(String s)
Integer static String tostring(int i)
Long static long parseLong(String s)
Long static String toString(Long i)
Float static float parseFloat(String s)
Float static String toString(float f)
Double static double parseDouble(String s)
Double static String toString(Double
Byte static byte parseByte(String s)
byte->string
Byte static String toString(byte b)
char->string
Character static String to String (char c)
string->Short
Short static Short parseShort(String s)
Short->String
Short static String toString(Short s)
String->Integer
Integer static int parseInt(String s)
Integer->String
Integer static String tostring(int i)
String->Long
Long static long parseLong(String s)
Long->String
Long static String toString(Long i)
String->Float
Float static float parseFloat(String s)
Float->String
Float static String toString(float f)
String->Double
Double static double parseDouble(String s)
Double->String
Double static String toString(Double d)
⑴Java简单类型与封装类
我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了对这些非面向对象的简单数据类型的支持。当然,Java在提供大量的其它类时,也提供了与简单数据类型对应的封装类,于是,Java中就有了诸如int和Integer(float和Float、double和Double……)的不同的数据类型。
Java语言的数据类型有两大类:一类是简单类型,也称主要类型(Primitive),另一类是引用类型(Reference)。简单类型变量中存储的是具体的值,而引用类型的变量中存储的是对象的引用。
Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。
下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。
表 Java中的简单类型
简单类型 boolean byte char short int long float double void
二进制位数 1 8 16 16 32 64 32 64 --
封装器类 Boolean Byte Character Short Integer Long Float Double Void
⑵为什么使用封装类
以int和Integer为例来说,虽然从本质上它们都代表一个32位的整数,但它们却是不同的数据类型。事实上,Java中直接使用的整数都为int(就int和Integer而言),只有当数据必须作为对象的身份出现时,才必须用int对应的封装器Intege将整数值封装成对象。
例如:为给java.util包中的Vector添加一个整数,就必须如下将该整数值封装在一个Integer实例中:
Vector v=new Vector();
int k=121;
v.addElemt(new Integer(k));
另外,Integer作为int对应的封装器类,提供了许多的方法,比如:Integer的构造方法、Integer向其它各种数值类型的转换方法等等,而这些是int类型数据所没有的。
2.简单数据类型之间的转换
简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。
⑴自动转换
具体地讲,当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。而在方法调用时,实际参数较“小”,而被调用的方法的形式参数数据又较“大”时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将“小”数据转换成“大”数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最“接近”的“大”数据并进行调用。
这些类型由“小”到“大”分别为 (byte,short,char)--int--long--float—double。这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。
请看下面的示例:
①下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c='c';
int i=c;
System.out.println("output:"+i);
输出:output:99;
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99 ;
char c=(char)i;
System.out.println("output:"+c);
输出:output:c;
④对象多态中若有方法:
f(byte x){……};
f(short x) {……};
f(int x) {……};
f(long x) {……};
f(float x) {……};
f(double x) {……};
又有:char y=’A’;那么,语句f(y)会调用哪一个方法呢?答案是:f(int x) {……}方法,因为它的形参比实参“大”且是最“接近”的。
而对于方法:
f(float x) {……};
f(double x) {……};
又有:long y=123L;那么,语句f(y)调用的方法则是f(float x) {……}。
⑵强制转换
将“大”数据转换为“小”数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式:
int n=(int)3.14159/2;
可以想象,这种转换肯定可能会导致溢出或精度的下降。
注:
①当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。
byte b;
b=3;
b=(byte)(b*3);//必须声明byte。
②带小数的变量默认为double类型。
float f;
f=1.3f;//必须声明f。
⑶包装类过渡类型转换
一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:
①当希望把float型转换为double型时:
float f1=100.00f;
Float F1=new Float(f1);
double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法
②当希望把double型转换为int型时:
double d1=100.00;
Double D1=new Double(d1);
int i1=D1.intValue();
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
3.字符串与其它类型间的转换
⑴其它类型向字符串的转换
①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.volueOf(X);
⑵字符串作为值,向其它类型的转换
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()
②静态parseXXX方法
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
③Character的getNumericValue(char ch)方法
具体可查阅api。
再分享 java.lang.math 中的几个函数:
四舍五入:
static long round(double a)
Returns the closest long to the argument.
static int round(float a)
Returns the closest int to the argument.
下取整:
static double ceil(double a)
Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer.
上取整:
static double floor(double a)
Returns the largest (closest to positive infinity) double value that is not greater than the argument and is equal to a mathematical integer.
例如:
import java.lang.*;
public class quzheng{
public static void main(String args[]){
//四舍五入
System.out.println(Math.round(3.40d));
System.out.println(Math.round(3.60d));
System.out.println(Math.round(3.40f));
System.out.println(Math.round(3.60f));
//上取整
System.out.println(Math.ceil(3.4));
System.out.println(Math.ceil(3.6));
//下取整
System.out.println(Math.floor(3.40));
System.out.println(Math.floor(3.60));
}
}
结果为:
3
4
3
4
4.0
4.0
3.0
3.0
(4)如果涉及到复杂类型比如数组就需要进行中间处理过程 下面我们看一个例子
例:java String转int数组
String s = "46513321";
char[] c = s.toCharArray();
int[] intb = new int[c.length];
for (int i = 0; i < c.length; i++) {
String str= String.valueOf(c);
intb = Integer.parseInt(str);
}
⑴Java简单类型与封装类
我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了对这些非面向对象的简单数据类型的支持。当然,Java在提供大量的其它类时,也提供了与简单数据类型对应的封装类,于是,Java中就有了诸如int和Integer(float和Float、double和Double……)的不同的数据类型。
Java语言的数据类型有两大类:一类是简单类型,也称主要类型(Primitive),另一类是引用类型(Reference)。简单类型变量中存储的是具体的值,而引用类型的变量中存储的是对象的引用。
Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。
下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。
表 Java中的简单类型
简单类型 boolean byte char short int long float double void
二进制位数 1 8 16 16 32 64 32 64 --
封装器类 Boolean Byte Character Short Integer Long Float Double Void
⑵为什么使用封装类
以int和Integer为例来说,虽然从本质上它们都代表一个32位的整数,但它们却是不同的数据类型。事实上,Java中直接使用的整数都为int(就int和Integer而言),只有当数据必须作为对象的身份出现时,才必须用int对应的封装器Intege将整数值封装成对象。
例如:为给java.util包中的Vector添加一个整数,就必须如下将该整数值封装在一个Integer实例中:
Vector v=new Vector();
int k=121;
v.addElemt(new Integer(k));
另外,Integer作为int对应的封装器类,提供了许多的方法,比如:Integer的构造方法、Integer向其它各种数值类型的转换方法等等,而这些是int类型数据所没有的。
2.简单数据类型之间的转换
简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。
⑴自动转换
具体地讲,当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。而在方法调用时,实际参数较“小”,而被调用的方法的形式参数数据又较“大”时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将“小”数据转换成“大”数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最“接近”的“大”数据并进行调用。
这些类型由“小”到“大”分别为 (byte,short,char)--int--long--float—double。这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。
请看下面的示例:
①下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c='c';
int i=c;
System.out.println("output:"+i);
输出:output:99;
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99 ;
char c=(char)i;
System.out.println("output:"+c);
输出:output:c;
④对象多态中若有方法:
f(byte x){……};
f(short x) {……};
f(int x) {……};
f(long x) {……};
f(float x) {……};
f(double x) {……};
又有:char y=’A’;那么,语句f(y)会调用哪一个方法呢?答案是:f(int x) {……}方法,因为它的形参比实参“大”且是最“接近”的。
而对于方法:
f(float x) {……};
f(double x) {……};
又有:long y=123L;那么,语句f(y)调用的方法则是f(float x) {……}。
⑵强制转换
将“大”数据转换为“小”数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式:
int n=(int)3.14159/2;
可以想象,这种转换肯定可能会导致溢出或精度的下降。
注:
①当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。
byte b;
b=3;
b=(byte)(b*3);//必须声明byte。
②带小数的变量默认为double类型。
float f;
f=1.3f;//必须声明f。
⑶包装类过渡类型转换
一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:
①当希望把float型转换为double型时:
float f1=100.00f;
Float F1=new Float(f1);
double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法
②当希望把double型转换为int型时:
double d1=100.00;
Double D1=new Double(d1);
int i1=D1.intValue();
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
3.字符串与其它类型间的转换
⑴其它类型向字符串的转换
①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.volueOf(X);
⑵字符串作为值,向其它类型的转换
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()
②静态parseXXX方法
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
③Character的getNumericValue(char ch)方法
具体可查阅api。
再分享 java.lang.math 中的几个函数:
四舍五入:
static long round(double a)
Returns the closest long to the argument.
static int round(float a)
Returns the closest int to the argument.
下取整:
static double ceil(double a)
Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer.
上取整:
static double floor(double a)
Returns the largest (closest to positive infinity) double value that is not greater than the argument and is equal to a mathematical integer.
例如:
import java.lang.*;
public class quzheng{
public static void main(String args[]){
//四舍五入
System.out.println(Math.round(3.40d));
System.out.println(Math.round(3.60d));
System.out.println(Math.round(3.40f));
System.out.println(Math.round(3.60f));
//上取整
System.out.println(Math.ceil(3.4));
System.out.println(Math.ceil(3.6));
//下取整
System.out.println(Math.floor(3.40));
System.out.println(Math.floor(3.60));
}
}
结果为:
3
4
3
4
4.0
4.0
3.0
3.0
java中数据类型转换
i = Integer.parseInt([String],[int radix]);
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:
关键字 类型转换
出处
这是一个例子,说的是JAVA中数据数型的转换.供大家学习引
import java.sql.Date;
public class TypeChange {
public TypeChange() {
}
//change the string type to the int type
public static int stringToInt(String intstr)
{
Integer integer;
integer = Integer.valueOf(intstr);
return integer.intValue();
}
//change int type to the string type
public static String intToString(int value)
{
Integer integer = new Integer(value);
return integer.toString();
}
//change the string type to the float type
public static float stringToFloat(String floatstr)
{
Float floatee;
floatee = Float.valueOf(floatstr);
return floatee.floatValue();
}
//change the float type to the string type
public static String floatToString(float value)
{
Float floatee = new Float(value);
return floatee.toString();
}
//change the string type to the sqlDate type
public static java.sql.Date stringToDate(String dateStr)
{
return java.sql.Date.valueOf(dateStr);
}
//change the sqlDate type to the string type
public static String dateToString(java.sql.Date datee)
{
return datee.toString();
}
{
java.sql.Date day ;
day = TypeChange.stringToDate("2003-11-3");
String strday = TypeChange.dateToString(day);
System.out.println(strday);
}
}
JAVA中常用数据类型转换函数
虽然都能在JAVA API中找到,整理一下做个备份。
Byte static byte parseByte(String s)
Byte static String toString(byte b)
Character static String to String (char c)
Short static Short parseShort(String s)
Short static String toString(Short s)
Integer static int parseInt(String s)
Integer static String tostring(int i)
Long static long parseLong(String s)
Long static String toString(Long i)
Float static float parseFloat(String s)
Float static String toString(float f)
Double static double parseDouble(String s)
Double static String toString(Double)
++++++++++++++++++++++++++++++++++++++++++++++++++++++
数据类型
基本类型有以下四种:
int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、
float长度数据类型有:单精度(32bits float)、双精度(64bits double)
boolean类型变量的取值有:ture、false
char数据类型有:unicode字符,16位
对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long
转换原则
从低精度向高精度转换
byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换
基本类型向类类型转换
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换
int b=a.intValue();
类类型向字符串转换
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue()
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
基本类型向字符串的转换
正向转换:
如:int a=12;
String b;b=a+””;
反向转换:
通过类包装器
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
======================================================================================