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

星组游戏论坛

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

QQ登录

只需一步,快速开始

查看: 922|回复: 2

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

Rank: 1

UID
97141
星币
5
积分
2
阅读权限
10
注册时间
2013-2-18
最后登录
2014-6-10
发表于 2013-4-3 09:44:41 |显示全部楼层
1、String型---->double型
; A, F& B& @- T: J: f) M& Y      Double.parseDouble("11.2");
0 d1 k# I- i5 K8 F2、String型---->int型
, N% @* U/ q2 }5 [" s      Integer.parseInt("44");9 l* G  G: w4 F2 r
3、string->byte
( n& L$ Y" }3 U+ }Byte static byte parseByte(String s)  - |  g$ n6 g/ a( q3 v' v  l
byte->string
# r6 M- T4 |: uByte static String toString(byte b); G/ z$ D# ~9 m% G  V) b
char->string - F5 P" ~+ ?( W  d/ o$ _# u9 r
Character static String to String (char c)
. ^) y2 ?  |. c( j! h  Astring->Short ! C% _7 P" A' i+ m7 A  D# O. F! ~
Short static Short parseShort(String s)8 t3 t' P: E5 d5 ~! l  H# _/ i8 L8 P
Short->String
. y, j" b- T+ q. {* R5 T3 jShort static String toString(Short s)
5 _+ P6 ?$ }' x9 \String->Integer 6 v0 o: F/ s: {; M
Integer static int parseInt(String s)
* O& j+ n. _3 }/ VInteger->String 6 K. a  C! N! l& o: D
Integer static String tostring(int i)$ V2 N( T5 r5 q' |
String->Long
6 F" d% V" s5 [! V% L: t0 ~Long static long parseLong(String s)! ]' a5 V, l4 l2 M( _( _! X- I
Long->String
# [' j8 n2 ?$ m0 sLong static String toString(Long i)) W+ n" y8 k' ~) k3 O
String->Float
' S4 ?) H! o( V5 FFloat static float parseFloat(String s)
* Z" t# K  R& LFloat->String
/ Y  w, y* O# `Float static String toString(float f). d' o/ B$ L" r3 F1 \4 ?) B' I2 Y: y- c
String->Double : C9 y; l7 s/ l! d7 Z- I9 B- w$ k4 s
Double static double parseDouble(String s)
( S3 S% y. E/ X! ~5 @0 ?6 BDouble->String1 ~# g4 M$ c4 o$ A; L
Double static String toString(Double)
7 W/ c* v! d* @+ I2 m1 G& v$ O& w
4 t* l% P( I3 f- S& p% I在JSP网页程序的编写过程中,随时会遇到各种数据类型转换及强制转换。下面就一般的转换情况作出一定的分析。. g9 y1 C5 b$ w* e  W6 s2 h
因为String的范围比int要大,所以强制类型转换是不行的,这时就用到了“缩小转换”0 L* I: U+ _+ Z* c8 `/ O
String RDMoney ;/ O) {2 g* x' G0 z; s
int Money = Integer.parseInt(RDMoney) ;
& e% [, A* D& E9 Q这样就把String转成int了,其他类型同理' H( N0 v9 F% J* G
有必要看看下面的文章:
* C* A+ K9 ?6 ^5 h! Y& W' J- u低级变量转换为高级变量就不说了,拿个例子一看就懂了
; b; T9 w( Z+ y8 ], Qbyte b;+ a9 f) Y) s, o4 s8 C. [( c) E
int i=b;

% W& f! o/ R9 X9 M  O而将高级变量转换为低级变量时,可以使用强制类型转换。# g; R1 V$ }7 p+ L
int i;
& r7 E% ]- N7 K4 L1 k2 ]byte b=(byte)i;$ N$ Z0 q3 d# G: X6 Q
这种转换肯定可能会导致溢出或精度的下降,不推荐使用这种转换。
6 s; B- b: j1 Y/ ]
Java的包装类,不兼容类型的强制转换! t# T2 M3 p/ Q, c0 S+ W
在了解其它变量类型之间的相互转换时,需要先了解一下Java的包装类,包装类就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和 Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。而String和Date本身就是类。所以也就不存在什么包装类的概念了。
* X1 j: Y9 @0 C- c0 O& m5 f
简单类型变量和包装类之间的相互转换3 i" M2 X4 x! ]% h  X
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:
9 ?9 s% t/ x7 w. L" A3 qBoolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)' b9 k: I+ e, O9 S; \
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

( J) a& S  d( U- Z# q/ uString类和其它数据类型的相互转换
1 B/ }# n! ^' D* M$ s对于上面的这些包装类,除了Character以外,都有可以直接使用字符串参数的构造函数,这也就使得我们将String类转换为这些数据类型变得相当之简单,即:( G% o! I7 J$ i; {% }# D
Boolean(String s)、Integer(String s)、Long(String s)、Float(String s)、Double(String s)9 Q1 Z$ `  o$ q2 B) O( D
而将String类转换为Date类也可以使用这样的构造函数:Date(String s)
" O; t) w! O+ S现在我们还剩下一个字符型变量,事实上String类可以理解为一个char型数组,因此我们可以在String类中找到这样的方法来实现这种转换: charAt(int index)可以得到String类中某一位置上的字符,toCharArray()更可以将整个String类转换成一个char的数组。8 q- ?) n8 M' C, v# {
对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类,而对于整型类和长整型类,还可以使用 toBinaryString(int i)、toHexString(int i)、toOctalString(int i)分别以二进制、十六进制和八进制的形式进行到String类的转换。
3 G& {' r' p! K* U+ e
将字符型直接做为数值转换为其它数据类型
( P; y4 l/ ?# C+ o7 _4 x. D# f; {将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,‘1’就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法
; H$ R7 j7 x) s! S/ _

5 ?) V1 f, [" v3 w! EDate类与其它数据类型的相互转换7 [) ~6 O0 e+ }: ^4 h
整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:% S% l8 \2 R; p' j0 A8 @% e9 H/ `) q
Date(int year, int month, int date):以int型表示年、月、日$ }8 E% k+ a% k) h
Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分7 p1 i8 C6 [  c  H
Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒5 {' `2 D2 d% ~# s. }, H( r
在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)
  L+ ^. ~' p7 X获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、 getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。7 ~" O( |, ]2 X8 N
而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString()方法可以将其转换为String类。
: v! p1 X5 j; l, g
8 f0 ^; h, b+ O; R

5 s- p# Y, w$ ]: k6 i' F 规定格式的 String 转 Date
# t4 t: L# m- h
' ~, N% ~& ~: H6 h) fjava.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");8 P# F$ G# k3 \+ }/ ~
  Date dat = sdf.parse("2007-05-04 12:56:18");
0 w; [; Y0 B6 j1 M
! a1 r9 d# ~- X: r

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-1-17 13:25

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部