Java不同数据类型之间的转换

Java不同数据类型之间的转换

数据类型
**基本数据类型:**byte、short、int、long、float、double、char、boolean
int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)
float长度数据类型有:单精度(32bits float)、双精度(64bits double)
boolean类型变量的取值有:ture、false
char数据类型有:unicode字符,16bits
对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long

引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)–>int–>float–>long–>double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

如何将字串 String 转换成整数 int?

A. 有两个方法:
1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
注: 字串转成 Double, Float, Long 的方法大同小异.

如何将整数 int 转换成字串 String ?

A. 有叁种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = “” + i;
注: Double, Float, Long 转成字串的方法大同小异.

1.char[]转为String类型

public class CharToString {
public static void main(String[] args) {
    char[] c = {'a', 'b', 'c', 'd'};

    String s1 = new String(c);
    String s2 = String.valueOf(c);

    if(s1.equals("abcd"))
        System.out.println("char[] to String ,  success!");
    if(s2.equals("abcd"))
        System.out.println("char[] to String ,  success!");
    System.out.println(c.toString());
    System.out.println(s1.toString());
    System.out.print(s1);
    System.out.println();
    System.out.print(s2);
}
}

输出结果:  
char[] to String ,  success!  
char[] to String ,  success!  
[C@c17164  
abcd  
abcd  
abcd  

char[] 数组转换成String可使用new String(char[]); 或 String.valueOf(char[]); ,在使用swing的JPasswordField组件时,getPassword()得到的就时char数组。

还有char数组调用toString()时,是调用的Object类的toString()方法。如下:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

所以想通过toString转为字符串,得到的结果会让人感到意外。

String类把toString类型重载了,所以自然地得到的便是字符串。

2. ArrayList 与 string、string[] 的转换

1、ArrarList 转换为 string[] :

    ArrayList list = new ArrayList();

  list.Add("aaa");

  list.Add("bbb");

  //转换成数组

  string[] arrString = (string[])list.ToArray(typeof( string)) ;

2、string[] 转换为 ArrarList :

  ArrayList list = new ArrayList(new string[] { "aaa", "bbb" });

3、ArrayList 转换为 string :

  ArrayList list = new ArrayList();

  list.Add("aaa");

  list.Add("bbb");

  //转换成数组

  string str= string.Join(",", (string[])list.ToArray(typeof( string)));

4、string 转换为 ArrayList :

string str="1,2,3,4,5";

ArrayList b = new ArrayList( str.Split(',') ) ;

5、byte[] 转 String

  byte[] byte = getByte();  //test
  String str = new String(byte)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的类型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的位,例如int类型的变量转换为byte类型时,则只去int类型的8位(也就是最后一个字节)的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值