java类型转换机制_简述java类型转换机制。
展开全部
string和int之间的转换?
字符串转换成数据
Java代码
String MyNumber ="1234";
int MyInt = Integer.parseInt(MyNumber);
String MyNumber ="1234";
int MyInt = Integer.parseInt(MyNumber);
字符串转换成byte, short, int, float, double, long等数据类型,可以分别参考Byte, Short, Integer, Float, Double, Long类的parseXXX 方法。
Java代码
a1=Integer.parseInt(s1);
s1=Integer.toString(a1);
a1=Integer.parseInt(s1);
s1=Integer.toString(a1);
数据转换成字符串
Java代码
int MyInt = 1234;
String MyString = "" + MyInt;
int MyInt = 1234;
String MyString = "" + MyInt;
其它数据类型可以利用同样的方e69da5e887aa3231313335323631343130323136353331333264633535法转换成字符串。
十进制到其他进制的转换
十进制整数转换成二进制整数,返回结果是一个字符串:
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方法转换成其他进制的字符串形式。
其它进制到十进制的转换
五进制字符串14414转换成十进制整数,结果是1234:
System.out.println(Integer.valueOf("14414", 5);
Integer和Long提供的valueOf(String source, int radix)方法,可以
将任意进制的字符串转换成十进制数据。
把String类型转换成16进制的整数
Java代码
public static void main(String args[]){
String x = "0x300C8";
int y = Integer.decode(x).intvalue();
System.out.println(y);
}
public static void main(String args[]){
String x = "0x300C8";
int y = Integer.decode(x).intvalue();
System.out.println(y);
}
int、char、double与byte相互转换的程序
整数到字节数组的转换
Java代码
public static byte[] intToByte(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; //向右移8位
}
return b;
}
public static byte[] intToByte(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; //向右移8位
}
return b;
}
字节数组到整数的转换
Java代码
public static int byteToInt(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;
}
public static int byteToInt(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;
}
短整数与字节数组之间的相互转换
short与int之间的区别在于short是两个字节的,而int是四个字节的。因此,只需要将5 与6 中的范例程序小做改动,即可实现短整数与字节数组之间的相互转换。
字符到字节转换
Java代码
public static byte[] charToByte(char ch){
int temp=(int)ch;
byte[] b=new byte[2];
for (int i=b.length-1;i>-1;i--){
b[i] = new Integer(temp&0xff).bytevalue(); //将最高位保存在最低位
temp = temp >> 8; //向右移8位
}
Java中的强制类型转换,如果这2种类型是兼容的,那么Java 将自动地进行转换。例如,把int 类型的值赋给long 类型的变量,总是可行的。然而,不是所有的类型都是兼容的,因此,不是所有的类型转换都是可以隐式实现的。例如,没有将double 型转换为byte 型的定义。幸好,获得不兼容的类型之间的转换仍然是可能的。要达到这个目的,你必须使用一个强制类型转换,它能完成两个不兼容的类型之间的显式变换。让我们看看自动类型转换和强制类型转换。
一.Java 的自动转换
如果下列2个条件都能满足,那么将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换(automatic type conversion):
1.这2种类型是兼容的。
2.目的类型数的范围比来源类型的大。
当以上2个条件都满足时,拓宽转换(widening conversion )发生。例如,int 型的范围比所有byte 型的合法范围大,因此不要求显式强制类型转换语句。
对于拓宽转换,数字类型,包括整数(integer )和浮点(floating-point )类型都是彼此兼容的,但是,数字类型和字符类型(char)或布尔类型(bollean )是不兼容的。字符类型(char )和布尔类型(bollean )也是互相不兼容的。
二. 不兼容类型的强制转换
尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果你需要将int 型的值赋给一个byte 型的变量,你将怎么办?这种转换不会自动进行,因为byte 型的变化范围比int 型的要小。这种转换有时称为“缩小转换”(),因为你肯定要将源数据类型的值变小才能适合目标数据类型。
为了完成两种不兼容类型之间的转换,你就必须进行强制类型转换。所谓强制类型转换只不过是一种显式的类型变换。它的通用格式如下:
(target-type)value
其中,目标类型(target-type )指定了要将指定值转换成的类型。例如,下面的程序段将int 型强制转换成byte 型。如果整数的值超出了byte 型的取值范围,它的值将会因为对byte 型值域取模(整数除以byte 得到的余数)而减少。
int a;
byte b;
// ...
b = (byte) a;
当把浮点值赋给整数类型时一种不同的类型转换发生了:截断(truncation )。你知道整数没有小数部分。这样,当把浮点值赋给整数类型时,它的小数部分会被舍去。例如,如果将值1.23赋给一个整数,其结果值只是1,0.23 被丢弃了。当然,如果浮点值太大而不能适合目标整数类型,那么它的值将会因为对目标类型值域取模而减少。
下面的程序说明了强制类型转换:
// Demonstrate casts.
class Conversion {
public static void main(String args[]) {
byte b;
int i = 257;
double d = 323.142;
System.out.println("\nConversion of int to byte.");
b = (byte) i;
System.out.println("i and b " + i + " " + b);
System.out.println("\nConversion of double to int.");
i = (int) d;
System.out.println("d and i " + d + " " + i);
System.out.println("\nConversion of double to byte.");
b = (byte) d;
System.out.println("d and b " + d + " " + b);
}
}
该程序的输出如下:
Conversion of int to byte.
i and b 257 1
Conversion of double to int.
d and i 323.142 323
Conversion of double to byte.
d and b 323.142 67
让我们看看每一个类型转换。当值257被强制转换为byte 变量时,其结果是257除以256 (256是byte 类型的变化范围)的余数1。当把变量d转换为int 型,它的小数部分被舍弃了。当把变量d转换为byte 型,它的小数部分被舍弃了,而且它的值减少为256 的模,即67。
本回答由网友推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
java类型转换机制_简述java类型转换机制。相关推荐
- 简述java的异常处理机制_简述java异常处理机制
引言: Hello,我的好朋友们,又到我们相聚的时间了,今天我要和大家分享一些有关java异常处理的相关 知识,也是通过老师的讲解和相关材料的借鉴之后的一个比较系统的总结,真心希望写完这篇文章的我和看 ...
- java 倾斜校正_简述Java图像倾斜方法及实例
可以使用 graphics2D 类提供的 shear() 方法设置绘图的倾斜方向,从而使图像实现倾斜的效果.下面,我们一起来看一下它的使用方法和实例. 语法如下: shear(double shx,d ...
- java 构造方法特点_简述 Java 中构造方法 的概念及特点。_市场营销知识答案_学小易找答案...
[判断题]376 . 宽松裤后腰围计算公式为 W/4-1+ 省. [判断题]365 . 鱼尾裙的展宽高度与裙造型变化有关系.( ) [判断题]361 . 服装结构制图中的某些部位.线条.点等常使用其英 ...
- Java面试题(二)-----简述Java和C++的相同点和不同点
Java面试题(二)-----简述Java和C++的相同点和不同点 文章目录
- java初反射_初始 java 反射机制 (一)
反射机制详解 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为j ...
- 工作中用到的java反射机制_(转)JAVA-反射机制的使用
Java反射机制的实现原理 反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠 ...
- java实现分发_关于JAVA中事件分发和监听机制实现的代码实例
[实例简介] 关于JAVA中事件分发和监听机制实现的代码实例,绝对实用代码,有说明. [实例截图] [核心代码] JavaEventDispatch ├── bin │ └── com │ └ ...
- java动态类加载_实现Java动态类载入机制
作 为 充 分 利 用Java 的 动 态 类 载 入 机 制 的 最 好 例 子, 带 有Java 扩 展 的Web 浏 览 器 根 据 请 求 从 网 络 或 本 地 文 件 系 统 中 动 态 ...
- 简述java异常机制处理,简述Java中异常处理的机制
Q1:JAVA中的异常处理机制的原理 Java中的异常处理机制的简单原理和应用 : java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error. Ex ...
最新文章
- php time 毫秒_PHP获取当前时间的毫秒数
- 关于hadoop与jstl冲突的jar包
- AngularJS DEMO - 不断更新中
- python绘制3d图形-python matlibplot绘制3D图形
- python PIL 单张图像变换大小—— img.resize()
- ubutnu16.04搭建LAMP环境(搭建wordpress博客)
- redis的安装及springDataRedis
- java怎么修改订单状态_在WooCommerce中自定义订单状态更改时发送电子邮件通知
- blob类型_MySQL:创建表时如何选择合适的字段类型
- Android view 小总结
- 小程序 搜索结果关键字标红(支持拼音)
- 磁盘分区 如何分出整数
- 【ajax】6.IE缓存问题解决
- iOS开发调试技巧之模拟定位国外位置
- 如何用计算机恢复出厂设置,告诉你电脑如何恢复出厂设置
- [sql server] 取汉字 拼音 首字母
- TIA protal与SCL从入门到精通(5)——函数终止跳转处理
- 从零开始学习C语言开发视频教程在线完整版
- python实现炫酷字母雨
- Buct oj 1019
热门文章
- 计算机技术指标是,计算机主要技术指标通常是指
- RNN梯度消失和爆炸
- json schema多种形式_Json Schema简介
- python jsonschema使用
- 代谢组学喜讯|百趣生物与金域医学达成代谢组学战略合作
- 阿当姆斯校正程序代码MATLAB,全区间积分的阿当姆斯预报校正法(常微分方程组的求解)...
- Vins-Mono+Fusion 学习笔记(二)
- scipy.optimize.linprog函数参数最全详解
- 8本推荐游戏开发书籍
- RISE 75 双模蓝牙5.2热插拔PCB