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

星组游戏论坛

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

QQ登录

只需一步,快速开始

查看: 1031|回复: 2

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

Rank: 1

UID
97141
星币
5
积分
2
阅读权限
10
注册时间
2013-2-18
最后登录
2014-6-10
发表于 2013-4-3 09:44:41 |显示全部楼层
1、String型---->double型 , \$ K& ?9 `+ H# o4 }
      Double.parseDouble("11.2");0 @8 x5 j5 F- B8 z; G
2、String型---->int型: c& X/ Q7 Q8 c* F
      Integer.parseInt("44");
* M; A+ }) ]7 R6 j7 \3、string->byte
6 C+ ^  \. C+ J, qByte static byte parseByte(String s)  
. q7 d: p& w( K; `8 c$ }" S$ ^byte->string 7 e$ J/ @+ H9 z8 O2 O$ V
Byte static String toString(byte b)
$ g- M( v& _: O- dchar->string + I. Y' {( f! h1 G) v4 X6 J
Character static String to String (char c)1 K) H* b" b4 k- u) B0 E- [9 n6 q. H
string->Short 5 C8 y3 P& R8 P
Short static Short parseShort(String s)
  E9 }/ r' J4 C/ u4 o: xShort->String
$ N# ?, b( L# C9 q% \' EShort static String toString(Short s)
6 m. I! o( y2 C. ]3 J" i" CString->Integer
) f3 D( Z+ B( O" A6 Y5 ?9 eInteger static int parseInt(String s), O+ t% {$ b! y9 V* e9 Y
Integer->String 5 j8 M; |+ m: N+ _: N' N
Integer static String tostring(int i). t$ G; _# I7 b& f" q' G9 y2 w
String->Long 8 M3 \  c2 `7 O0 U" M1 G0 x
Long static long parseLong(String s)" |, ^  J' Z  K) f( O) S
Long->String 2 K8 {' H1 L' A, s( w6 U% w3 d9 X
Long static String toString(Long i)! O) h1 m0 n, H
String->Float $ b, [3 Q7 z! A4 v7 C3 R, p, B. R
Float static float parseFloat(String s)6 A  E: Q5 b0 K0 D" j' }/ V
Float->String
" V# T; g; T* \2 TFloat static String toString(float f)
5 }8 _7 T1 t) F$ D2 C1 u! b0 TString->Double 0 ]9 M4 w" s" ?& z5 G8 E0 S
Double static double parseDouble(String s)
. ~( F6 N  _+ w3 B: d9 w. iDouble->String4 t; O9 g0 H- q+ r' @4 L9 I
Double static String toString(Double): V  D, q( Z3 U, i. R! ]

1 E9 r7 a  b4 X在JSP网页程序的编写过程中,随时会遇到各种数据类型转换及强制转换。下面就一般的转换情况作出一定的分析。
' |+ G+ P+ r& S因为String的范围比int要大,所以强制类型转换是不行的,这时就用到了“缩小转换”
' ~1 b' S5 ?8 o; _; dString RDMoney ;
3 }! B% B$ s1 i( \  [( Bint Money = Integer.parseInt(RDMoney) ;
! U+ r* E7 z8 L3 _! l1 B5 I这样就把String转成int了,其他类型同理2 b9 ^) e9 ?% M, ]8 p) ?; o' x
有必要看看下面的文章:; }& {% c, l" U1 _; I- P0 u% P
低级变量转换为高级变量就不说了,拿个例子一看就懂了
6 g, X& o# M8 @# rbyte b;. \( }. S" s9 d0 `8 J! I
int i=b;

1 D( J1 H* a  q; V2 B8 H! M+ k9 u而将高级变量转换为低级变量时,可以使用强制类型转换。2 C1 P5 S5 a" p3 b) c- [' i
int i;
+ W! q0 S% c2 i$ _: {9 J$ u* lbyte b=(byte)i;
1 s. d; R# T8 }* c这种转换肯定可能会导致溢出或精度的下降,不推荐使用这种转换。

  S$ W3 V' y- t* ^( NJava的包装类,不兼容类型的强制转换. }! \' \. E# |' H+ [- h
在了解其它变量类型之间的相互转换时,需要先了解一下Java的包装类,包装类就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和 Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。而String和Date本身就是类。所以也就不存在什么包装类的概念了。

2 F$ C9 S4 ~0 s$ @6 Q6 A+ H简单类型变量和包装类之间的相互转换
" B3 j% G$ G) f+ W! G简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:. q7 I) G- n: _6 c) D$ w
Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
5 M7 e" ]' T# b5 r$ n) ?而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

- O( e2 }, q! q. R* _String类和其它数据类型的相互转换
( E& d4 V1 c# {- e% S对于上面的这些包装类,除了Character以外,都有可以直接使用字符串参数的构造函数,这也就使得我们将String类转换为这些数据类型变得相当之简单,即:3 ]/ F! g# v* [) H1 Z/ R* u
Boolean(String s)、Integer(String s)、Long(String s)、Float(String s)、Double(String s)
, c( p5 \7 ^1 @/ @% j& ]而将String类转换为Date类也可以使用这样的构造函数:Date(String s); k& ~1 I' ]8 F% M2 A+ F! h+ O
现在我们还剩下一个字符型变量,事实上String类可以理解为一个char型数组,因此我们可以在String类中找到这样的方法来实现这种转换: charAt(int index)可以得到String类中某一位置上的字符,toCharArray()更可以将整个String类转换成一个char的数组。4 v: J6 k9 y' b& R  }
对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类,而对于整型类和长整型类,还可以使用 toBinaryString(int i)、toHexString(int i)、toOctalString(int i)分别以二进制、十六进制和八进制的形式进行到String类的转换。
2 T% |% {" S  A" a! @
将字符型直接做为数值转换为其它数据类型  R' Y0 [/ ^, \# n  o- m( l
将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,‘1’就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法

% G7 v6 t; N( q1 r. J: {( Z
/ }1 {0 d9 T6 m- e% c* E$ b$ GDate类与其它数据类型的相互转换
, N: ]. g2 e8 P9 `% M8 {整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:! v+ U1 [% ^& o2 R9 d9 n) n8 @5 M
Date(int year, int month, int date):以int型表示年、月、日, r! G4 j0 `& ]* d
Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分) j8 H% p6 k; s: V; _
Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒0 e- ?% h9 t) h. d; D
在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)
  l- c/ y  J; ?) ~- s* S获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、 getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。
3 Y$ n* j2 F, ^4 r3 d0 E: m而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString()方法可以将其转换为String类。8 R0 X$ H5 [9 d

5 Z# |. [- i7 S) u) q
; m* t' R" O, Z 规定格式的 String 转 Date
- L0 M5 a& R, J& E; K# U+ v8 c- v3 C; G5 @& V( @% b8 C
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
$ G2 U) B: L* P- p7 T% o( Q  Date dat = sdf.parse("2007-05-04 12:56:18");  r, F" b1 }: N4 Q* G  `- t

; l! w7 j, I: a) n  ~

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-8-17 19:46

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部