设为首页收藏本站
机战Z2破界篇 星组汉化 下载

星组游戏论坛

 找回密码
 注册(QQ注册+邀请注册)

QQ登录

只需一步,快速开始

查看: 1063|回复: 2

[资源] java强制转换 [复制链接]

Rank: 1

UID
97141
星币
5
积分
2
阅读权限
10
注册时间
2013-2-18
最后登录
2014-6-10
发表于 2013-4-3 09:44:41 |显示全部楼层
1、String型---->double型
: |% V" T% n% t7 ~! a      Double.parseDouble("11.2");: [2 ?: Y* F* }8 B
2、String型---->int型( e/ F1 w) x! k; r
      Integer.parseInt("44");
0 b1 A) M+ l3 W3、string->byte
8 S2 n+ H5 E9 G. l0 SByte static byte parseByte(String s)  5 k% W1 y% Q1 l; X  n6 ^
byte->string
* Y# C3 Q( D# F8 f" xByte static String toString(byte b)/ b7 J% ~4 o* ~3 \
char->string
( j7 _( f# j! }; V( {# ZCharacter static String to String (char c)
4 ^* ?0 G5 r  F* T9 xstring->Short
' W( I$ [" k' ~* \1 A$ y$ c- T0 G/ mShort static Short parseShort(String s)
2 p% L. U, B- wShort->String
4 o  [! ^0 |% {7 W5 m* C3 V4 e4 JShort static String toString(Short s)
1 W3 u! p. |. J. k( ^0 JString->Integer ! P/ d7 R. P# X6 M' A2 {
Integer static int parseInt(String s)4 h$ ~+ R5 q( D: Z7 Z1 ~/ g
Integer->String
+ z* d, t$ W& R. rInteger static String tostring(int i)( K3 Z( [2 s3 t
String->Long
4 }8 |0 N( f; f! p! sLong static long parseLong(String s)4 U# V4 I! j. \
Long->String
/ l5 e9 x/ Z8 v: a3 W. I" }Long static String toString(Long i)
% X; k9 F9 }( {4 i% K. cString->Float . i9 A4 M) T6 \- c$ e
Float static float parseFloat(String s)& L9 w3 w( a# V" C) T" ?; M4 d
Float->String / ?) m' ^' k* d6 G5 {  d+ o
Float static String toString(float f); t. K5 m( F& j7 |2 ~9 R2 e
String->Double & y9 D& }7 ^) y! T' y+ f: ^
Double static double parseDouble(String s)
, U+ \! w2 k6 Q. xDouble->String. j5 K) ?: i5 C& F  |
Double static String toString(Double)
2 Y4 t1 T) s+ W6 j
" k' V) s1 G. ?: `: q! x在JSP网页程序的编写过程中,随时会遇到各种数据类型转换及强制转换。下面就一般的转换情况作出一定的分析。
9 e: b, Q) w& b( R因为String的范围比int要大,所以强制类型转换是不行的,这时就用到了“缩小转换”! \% n7 G1 C% V, H
String RDMoney ;  Z* ^+ ~' P& @
int Money = Integer.parseInt(RDMoney) ;
" p) C1 a+ R; K这样就把String转成int了,其他类型同理
: z( v! H  p* S- n有必要看看下面的文章:5 S$ M0 ]- B; p0 u1 _
低级变量转换为高级变量就不说了,拿个例子一看就懂了) Q+ \/ A$ `# }5 J
byte b;& p" U5 y# ?! Q( h4 _: y. `5 N% X
int i=b;

+ \) Z/ b4 N3 d而将高级变量转换为低级变量时,可以使用强制类型转换。  n& q0 Z6 V. L
int i;) c/ c$ J4 ?6 D# X* e4 T4 C
byte b=(byte)i;' x5 u# z  ?% e! m0 E4 u
这种转换肯定可能会导致溢出或精度的下降,不推荐使用这种转换。
1 a. a9 ~/ [( N4 c; ]5 Z3 |
Java的包装类,不兼容类型的强制转换+ k( J6 S, _% X+ ]+ A
在了解其它变量类型之间的相互转换时,需要先了解一下Java的包装类,包装类就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和 Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。而String和Date本身就是类。所以也就不存在什么包装类的概念了。
) j- ?0 a/ ~5 W9 s1 U
简单类型变量和包装类之间的相互转换
- d, }1 k  e8 n1 a, z- G2 y简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:
/ e% w) v7 @7 W' N( IBoolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)$ X7 z, @# w# X( t; e
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
+ ?" D. p4 ?* v1 V
String类和其它数据类型的相互转换
$ K5 q% y7 q& j) I对于上面的这些包装类,除了Character以外,都有可以直接使用字符串参数的构造函数,这也就使得我们将String类转换为这些数据类型变得相当之简单,即:
& H2 o1 T6 z% n7 PBoolean(String s)、Integer(String s)、Long(String s)、Float(String s)、Double(String s)
, T3 J! h) ^% b3 M2 W; v而将String类转换为Date类也可以使用这样的构造函数:Date(String s)
+ I3 [  A# m1 E; j& r现在我们还剩下一个字符型变量,事实上String类可以理解为一个char型数组,因此我们可以在String类中找到这样的方法来实现这种转换: charAt(int index)可以得到String类中某一位置上的字符,toCharArray()更可以将整个String类转换成一个char的数组。; F/ e. u4 c4 [7 [
对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类,而对于整型类和长整型类,还可以使用 toBinaryString(int i)、toHexString(int i)、toOctalString(int i)分别以二进制、十六进制和八进制的形式进行到String类的转换。
$ r# L# t2 F5 @% S; d7 R- `. k- v! r
将字符型直接做为数值转换为其它数据类型) u' s9 C; `* \6 r9 k% {
将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,‘1’就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法

- M. |5 C% R+ u7 l3 k4 @3 ^
2 H1 s$ N8 g- f8 \" |Date类与其它数据类型的相互转换
8 d( k& ?5 F! X* w整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:
4 k' W1 @- p/ G0 r9 N) {5 ADate(int year, int month, int date):以int型表示年、月、日9 y: G3 F( A# `* Y% ]0 D
Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分
& y( f3 h9 E* o# V. t3 \$ ~Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒
' Y- P" [7 P- m+ L( l3 V- f1 k4 e: e在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)
' S) h5 e0 o: f3 J获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、 getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。0 ^6 w) I4 Q( `0 f3 d- y7 v
而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString()方法可以将其转换为String类。
; K4 m5 K# ^% v; D* o: t3 u
7 N1 D) R" z3 ~

. t, E3 u# [1 X; m+ R% T 规定格式的 String 转 Date
1 x  A, ?% P9 _- G) f$ m4 j. q2 x) [+ H3 n% r, ~
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  a, T' n3 Z, U4 N6 r+ y% E0 _
  Date dat = sdf.parse("2007-05-04 12:56:18");# J# F* W' L$ T, u1 N7 S6 P

5 T  o/ y1 F) b

Rank: 11Rank: 11Rank: 11Rank: 11

UID
95861
星币
51
积分
27
阅读权限
90
注册时间
2013-1-5
最后登录
2013-4-19
发表于 2013-4-3 10:09:09 |显示全部楼层
沙发           

Rank: 11Rank: 11Rank: 11Rank: 11

UID
95061
星币
5191
积分
814
阅读权限
90
注册时间
2012-12-5
最后登录
2018-9-29
发表于 2013-4-4 09:25:08 |显示全部楼层
好吧,我是来欣赏表情的
Freely Tomorrow

Archiver|星组游戏论坛 ( 京公网安备110403080002 )  

GMT+8, 2018-10-23 15:59

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部