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

星组游戏论坛

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

QQ登录

只需一步,快速开始

查看: 999|回复: 2

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

Rank: 1

UID
97141
星币
5
积分
2
阅读权限
10
注册时间
2013-2-18
最后登录
2014-6-10
发表于 2013-4-3 09:44:41 |显示全部楼层
1、String型---->double型 + y# @# Q, C; Y1 B
      Double.parseDouble("11.2");0 O+ G& C- O2 y/ G9 H9 S
2、String型---->int型
( q7 j. S$ E" `" e& c% M6 M      Integer.parseInt("44");. m0 _5 L/ \9 J
3、string->byte
) K7 i+ S! ~  y  [% X' Y% pByte static byte parseByte(String s)  4 i7 n  a# O+ R! m4 b
byte->string
6 V; Q; w' b6 r, {- X9 P; EByte static String toString(byte b)
- T' j! p/ p5 k: z. t& d( uchar->string 7 b8 R" H+ q; M6 e. w$ S+ q
Character static String to String (char c)
) H! V  L( P; I' z  `8 f* ?string->Short
( U  q$ G6 g; k' ZShort static Short parseShort(String s): j/ R; W2 W2 p, Q$ q. m0 ~. \
Short->String . v/ z' s0 i2 M3 m( r1 R; }1 m" E
Short static String toString(Short s)5 `2 x$ ~$ h" C  J
String->Integer
, v+ b7 }+ A& x' K8 ]Integer static int parseInt(String s)
6 P) Z8 f% D" X6 m! A! ~( JInteger->String
. Q5 k* ~+ }& j) `% fInteger static String tostring(int i)8 x5 ~7 k% M# |
String->Long 7 o" W6 Z2 V2 o! K
Long static long parseLong(String s)
! G8 q& s6 v  z8 b) `/ }Long->String 7 l- Q& z+ C3 }- d6 q% ]+ w& e
Long static String toString(Long i)" T, ]5 p3 J, ~0 n: T" y
String->Float $ b; V- Q" J0 |/ I8 G. w
Float static float parseFloat(String s)
1 \5 p6 F/ ^* l. y9 yFloat->String : Q5 |" r  _% z; H1 }
Float static String toString(float f)* t1 f# }) F5 J& I" R
String->Double . L' j2 T# b' i; o; T7 e( X
Double static double parseDouble(String s)% _3 l# i4 [% e( Z
Double->String
2 `# ^6 T8 x6 |% QDouble static String toString(Double)
# n8 I  D! g% f1 W3 W
' y- C  M& P7 ?: _3 g% h( U  I% n在JSP网页程序的编写过程中,随时会遇到各种数据类型转换及强制转换。下面就一般的转换情况作出一定的分析。, h! A0 v! h  o* `
因为String的范围比int要大,所以强制类型转换是不行的,这时就用到了“缩小转换”
" Q7 Y) T7 r# g' h3 zString RDMoney ;
- W) q4 n6 _( e6 u& W9 f( l4 J0 ^int Money = Integer.parseInt(RDMoney) ;9 B* j+ A8 @; y8 @+ T8 q
这样就把String转成int了,其他类型同理7 P; j0 O. ~1 J/ X; {/ {3 G" L
有必要看看下面的文章:, H) Z+ Y6 F9 v5 n, y* x- f
低级变量转换为高级变量就不说了,拿个例子一看就懂了1 @- n  h; Z+ H7 G( W
byte b;1 W4 p$ u3 }- U- F
int i=b;

9 E7 _9 K( q& M* Z- S( \" \而将高级变量转换为低级变量时,可以使用强制类型转换。
0 Z- ~' b" _* [: b. yint i;$ m. I% Z  J. I* t! M4 D
byte b=(byte)i;
+ [7 A* \, ~- X" @这种转换肯定可能会导致溢出或精度的下降,不推荐使用这种转换。
; j$ Y! j9 ?# w: S
Java的包装类,不兼容类型的强制转换3 V/ ^5 ^, P6 B; P& [# A
在了解其它变量类型之间的相互转换时,需要先了解一下Java的包装类,包装类就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和 Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。而String和Date本身就是类。所以也就不存在什么包装类的概念了。

. E5 V2 x2 y7 O  F7 Z) Y$ }& @简单类型变量和包装类之间的相互转换
* ~) ]* p) a  s8 O( E& V  M) z! g简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:% L' \- u2 M, Q/ i. g$ U% Z! f1 X
Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)$ Q" n1 Y/ x+ D
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
" X+ b; ]- H" ^* E% y( E4 l. `3 v, ]
String类和其它数据类型的相互转换
" i( ?" n, [+ d2 g& u对于上面的这些包装类,除了Character以外,都有可以直接使用字符串参数的构造函数,这也就使得我们将String类转换为这些数据类型变得相当之简单,即:
/ @  f9 A/ u  Q7 x0 p, h4 l1 xBoolean(String s)、Integer(String s)、Long(String s)、Float(String s)、Double(String s)
! o& J4 I* T3 l5 o( J而将String类转换为Date类也可以使用这样的构造函数:Date(String s)2 a. y. Z5 \, b) b) ^: a0 l
现在我们还剩下一个字符型变量,事实上String类可以理解为一个char型数组,因此我们可以在String类中找到这样的方法来实现这种转换: charAt(int index)可以得到String类中某一位置上的字符,toCharArray()更可以将整个String类转换成一个char的数组。
; R  E/ N$ _: g* C2 p) O对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类,而对于整型类和长整型类,还可以使用 toBinaryString(int i)、toHexString(int i)、toOctalString(int i)分别以二进制、十六进制和八进制的形式进行到String类的转换。

$ ~: @7 X3 I# P1 R0 y! x; e将字符型直接做为数值转换为其它数据类型7 I# q, e0 H8 [& M
将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,‘1’就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法
% M  @- Y6 s! v6 n; G" Y
$ s5 a/ b/ O" ~. k) }# O
Date类与其它数据类型的相互转换% h+ T! C2 O8 f% ~" ^
整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:  _3 M$ z& u9 X* j* ?
Date(int year, int month, int date):以int型表示年、月、日' x# Q" N( n- ^* Y/ G' p( T
Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分" p1 M% M6 S1 x% _7 C# G# t3 w
Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒
8 Z6 n) b4 A5 h; K1 |9 `/ Y在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)+ A/ e7 _* }, v7 ^
获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、 getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。& C+ L2 C8 {( M4 |
而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString()方法可以将其转换为String类。
) o: Q- g0 E- v
. P+ x  A5 s% _$ F

9 V5 `6 ^, F$ ?; \0 r6 q7 i 规定格式的 String 转 Date" e3 N7 Q) ]# t: I
$ Z7 z+ P1 P# {5 L. d
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");' f' p/ N6 V! X! T
  Date dat = sdf.parse("2007-05-04 12:56:18");
6 ^1 z* T* |: K% N8 {. K
: s" o6 X' t  s. P- 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
积分
813
阅读权限
90
注册时间
2012-12-5
最后登录
2016-9-7
发表于 2013-4-4 09:25:08 |显示全部楼层
好吧,我是来欣赏表情的
Freely Tomorrow

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

GMT+8, 2018-6-23 02:35

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部