|
该用户从未签到
|
String : 字符串类型
5 F0 ], N4 _* }; g0 w4 M# |6 _. i W: S( W v
一、构造函数
8 Y* }, `5 j4 M: q- f/ B String(byte[ ] bytes):通过byte数组构造字符串对象。
" |6 U, N0 n0 G f& A; B0 f8 m String(char[ ] value):通过char数组构造字符串对象。2 j# K: Z) J, Y- D' S Q1 ]8 n
String(Sting original):构造一个original的副本。即:拷贝一个original。) P: E. N. Q, ]
String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。
; s0 F! x' i8 ]7 Q9 Z* m例如:
# ^% q* B8 ]1 C& g byte[] b = {'a','b','c','d','e','f','g','h','i','j'};
. {% S% V/ _ @4 `$ D6 r char[] c = {'0','1','2','3','4','5','6','7','8','9'};4 |3 c* i/ L# U* f; w. K _
String sb = new String(b); //abcdefghij
8 C$ m2 s7 ^7 ]( } String sb_sub = new String(b,3,2); //de5 ^3 t) d" D- p% Z! o- K- [5 f9 n
String sc = new String(c); //01234567892 C+ l9 e8 t6 a' r, H! h; f1 K9 |
String sc_sub = new String(c,3,2); //348 g! W' T) ]' `) Q
String sb_copy = new String(sb); //abcdefghij : H; I2 q7 f; _7 p( ]
System.out.println("sb:"+sb);
V- j. g4 V0 ]) J% b. d System.out.println("sb_sub:"+sb_sub);
* L* N: Q* Y4 q System.out.println("sc:"+sc);
6 i. J/ Y# V3 v$ o System.out.println("sc_sub:"+sc_sub);
) w; v: S. g7 g+ t System.out.println("sb_copy:"+sb_copy);
7 }5 p" N) B5 ^8 } 输出结果:sb:abcdefghij
! E1 I0 e) a0 f) M4 x! ^ sb_sub:de
( V0 b2 X. G9 D# i sc:01234567892 j( l- E* a) B" q3 ]5 ~9 ?
sc_sub:347 f5 k) k. G+ K! r7 H6 O1 x3 A- V
sb_copy:abcdefghij. M8 R4 b4 J0 |2 n- R
& J9 D1 O! G$ o5 @& |0 H
二、方法:
?- X. ^* b+ w4 j2 T. w. H+ o; A: L3 }& P2 H
说明:①、所有方法均为public。
! V" b, Q, S8 N! y# t ②、书写格式: [修饰符] <返回类型><方法名([参数列表])>
) m4 V! J; w7 q. n: \( a
6 V C7 O+ A4 V2 R 例如:static int parseInt(String s)
) |% b9 c" f& j1 R- q 表示此方法(parseInt)为类方法(static),返回类型为(int),方法所需要为String类型。( g: t9 ? E5 t! |
+ \) S& `; x9 Z" h1. char charAt(int index) :取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。2 A/ D/ U4 x/ Z6 w7 M6 M
7 a7 R) Y! a$ I, F7 y/ s
8 P0 T+ D- h4 J$ E2 Z$ d
) X' ?# `. d7 i 例如:String s = new String("abcdefghijklmnopqrstuvwxyz");% e. A. D! f8 Q: T2 R8 h# f
System.out.println("s.charAt(5): " + s.charAt(5) );5 G x- n' x/ q
结果为: s.charAt(5): f
9 E! Q! s/ W- m& \2. int compareTo(String anotherString) :当前String对象与anotherString比较。相等关系返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。
! l6 R5 u$ z6 a0 K! d, q3. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。- ]) s9 c0 o! V( w
例如:String s1 = new String("abcdefghijklmn");
* q: g% a5 L; K0 Z( \2 ]2 e, C String s2 = new String("abcdefghij");$ k. ~ H) c( ?- i, v
String s3 = new String("abcdefghijalmn");
+ Q+ S ?8 ^% B G+ |0 h! g; | System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) ); //返回长度差
$ h1 M* F& m! C1 l2 ~ System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //返回'k'-'a'的差# W# C4 C* K+ e3 c1 ^) g0 r' a
结果为:s1.compareTo(s2): 4
7 n/ i/ f3 @+ k. _5 y s1.compareTo(s3): 10
9 W X, D6 T9 r4. String concat(String str) :将该String对象与str连接在一起。: \' P" K4 i) w1 t0 N$ G. C
5. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。
$ e) L ?7 r7 |- K) }/ I* u4 Z, W6. static String copyValueOf(char[] data) :% Y" {) X+ _" ~
7. static String copyValueOf(char[] data, int offset, int count) :这两个方法将char数组转换成String,与其中一个构造函数类似。1 y' W+ a$ t3 E4 Q) m$ \2 H
8. boolean endsWith(String suffix) :该String对象是否以suffix结尾。
- i9 X% Y+ h9 u2 e* j3 @( W 例如:String s1 = new String("abcdefghij");
" j( G( Y0 K% ]* a* D" u String s2 = new String("ghij");: f, k+ R) Z0 |, c7 Z7 l! }
System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );
0 \9 ?* n/ R: |3 d9 h$ P ?- z 结果为:s1.endsWith(s2): true* ^0 |- k# } Z
9. boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false。
- ^, ^6 T. S& N/ t! v9 ?; g10. byte[] getBytes() :将该String对象转换成byte数组。4 G# u1 {% J% d! {! K$ a Z
11. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。
. y& j' x0 F! D, K1 ?) } 例如:char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!) G$ \8 C; q: r+ Q
String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!$ }6 L: {- E/ d5 R* N
System.out.println( s1 );
. Y; a: _* g* d& ` 结果为:I love you!
2 s k8 K+ l& P7 A4 S* u* r12. int hashCode() :返回当前字符的哈希表码。5 ^! }7 J/ S7 {
13. int indexOf(int ch) :只找第一个匹配字符位置。; B, K+ A' X2 z7 |6 _7 C K/ i
14. int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置。7 K+ \. k7 M6 a6 j4 v3 c
15. int indexOf(String str) :只找第一个匹配字符串位置。$ q7 T: `" V. R4 S
16. int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置。. L! r @' b4 @& A/ l4 j5 c& ^
例如:String s = new String("write once, run anywhere!");
% R% c6 V5 ~+ A$ \# M% l$ { String ss = new String("run");
% B! [5 ~ p5 g8 K$ g- g System.out.println("s.indexOf('r'): " + s.indexOf('r') );
, o! C9 t7 `7 m% U- \, P& R System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) );. v3 j7 z" j* G) L4 W4 K
System.out.println("s.indexOf(ss): " + s.indexOf(ss) );
. O$ s) t- g- K8 K Y6 C 结果为:s.indexOf('r'): 1 J, n' u- `' h$ G4 I- P8 h- v$ Y) ~
s.indexOf('r',2): 12
0 z/ k L+ d! H# P8 c- a& p s.indexOf(ss): 12
: M" C( V- h& |) E7 d" d" y17. int lastIndexOf(int ch)
1 w$ Q4 Q# N% r, t. K/ B: l, D18. int lastIndexOf(int ch, int fromIndex)- r* Z: x8 o8 B8 E- V k1 t0 k
19. int lastIndexOf(String str)
; T6 k% Q7 g7 x2 h0 n; E" x20. int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容。
* g" r" |; t- l; K+ F: b: Zpublic class CompareToDemo {
' G( y1 o: N! w5 k9 k public static void main (String[] args) {! u( R0 M- |) ?3 T
String s1 = new String("acbdebfg");
4 {# Z6 w5 E7 `+ G! D; P) L. j/ B! x% q7 O' u- K! V/ j
System.out.println(s1.lastIndexOf((int)'b',7));
, j4 ~9 P" j. u8 A% e3 \ }6 p' U& l! y& B' D0 |# f
}
' @ P+ |' H+ O% k3 j( s运行结果:50 W: N3 p: D0 ~4 j: L# K/ A. M
(其中fromIndex的参数为 7,是从字符串acbdebfg的最后一个字符g开始往前数的位数。既是从字符c开始匹配,寻找最后一个匹配b的位置。所以结果为 5)3 A0 ~8 _- x" f. Y
4 P9 K8 e( G; }( w* V( X4 q4 A/ J: G. I" l$ m1 k! a( O: F, p
21. int length() :返回当前字符串长度。/ J: H% U, K4 G3 R* Y
22. String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar。
& s8 v! p# w" `/ L: W. x- N% K" F23. boolean startsWith(String prefix) :该String对象是否以prefix开始。2 K, [3 V U, l% k
24. boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。/ L# e. B# ?. E% V
例如:String s = new String("write once, run anywhere!");
% I4 a8 _$ f% F& ~* ^ String ss = new String("write");
0 j8 |8 N+ h4 W k! p5 L+ l) o String sss = new String("once");
" z5 V7 @1 U& ~/ Q9 Z x2 p System.out.println("s.startsWith(ss): " + s.startsWith(ss) );5 ]" Y6 |: I7 u4 z+ d, k c
System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );% S2 T) G; G* i+ `
结果为:s.startsWith(ss): true
, @9 R) z. X8 L3 s+ U& u' n* l s.startsWith(sss,6): true' r/ K* {1 t% f J/ o
25. String substring(int beginIndex) :取从beginIndex位置开始到结束的子字符串。9 \/ K0 L3 Q, P0 T' \- `
26.String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串。+ S9 [, F( a, [, e
27. char[ ] toCharArray() :将该String对象转换成char数组。
4 ^) q- ?. k3 {# g. N; H28. String toLowerCase() :将字符串转换成小写。
, V9 U0 N. m7 j8 s3 Y6 N' s29. String toUpperCase() :将字符串转换成大写。- _, ?. S. A0 Q- s/ F4 e T9 G
例如:String s = new String("java.lang.Class String");5 ~# _# L% n6 {- ?
System.out.println("s.toUpperCase(): " + s.toUpperCase() );
* i8 G8 Y0 P8 f. {% { System.out.println("s.toLowerCase(): " + s.toLowerCase() );- _4 x/ V$ c+ \( y* X" q% m
结果为:s.toUpperCase(): JAVA.LANG.CLASS STRING* Y% R u% J# Z: Q; D4 ]
s.toLowerCase(): java.lang.class string- t7 Z* f0 {* O$ f* W8 A3 S1 d2 H. V
30. static String valueOf(boolean b)
s2 i0 U" Z$ ^; S& Z$ w31. static String valueOf(char c)2 R* A/ F1 V& f0 H* S7 T
32. static String valueOf(char[] data)
5 y, z6 z/ R$ T" |33. static String valueOf(char[] data, int offset, int count)
1 W* i9 u: g, T# j( ?1 O# E% f0 U& l34. static String valueOf(double d)+ P6 l$ P: n; R. H# }+ b: G
35. static String valueOf(float f)% U' `" e4 H# ~5 n
36. static String valueOf(int i)( Z( E. r8 S# e% ~
37. static String valueOf(long l)/ X& P2 l: M, c5 c! P0 f
38. static String valueOf(Object obj)6 f3 @' o$ J0 U* t
以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。: H& x# S6 B* y3 S/ s
9 A ?; {/ @# q4 f C8 v6 F
2 P8 d% F0 N: j# n c9 _' j. z. o. b
1 `8 _. _6 n* L" s. B* u
/ K& f. e& h1 G5 b9 h3 v$ hJava中String类的常用方法:1 n7 P* k$ l' Q& A2 M
" \2 Q) k$ A; l* t1 ^# h- ]public char charAt(int index)
# X7 {3 \) B$ R" K9 G, t2 w4 z4 n返回字符串中第index个字符;
1 I8 L3 m, ^8 ]- V8 l' n9 Dpublic int length()
+ G; m" l! U7 F/ N返回字符串的长度;: a3 l/ p( k/ O
public int indexOf(String str)0 N# F( _! y4 G* O6 J1 l7 |- ~
返回字符串中第一次出现str的位置;0 u/ o; B# G: k* z
public int indexOf(String str,int fromIndex): H3 Z- g1 B- Z6 l0 {
返回字符串从fromIndex开始第一次出现str的位置;
* A: C l* z/ R+ Upublic boolean equalsIgnoreCase(String another)5 o D! j& R' ]
比较字符串与another是否一样(忽略大小写);
/ Y/ L! }0 ]5 t+ Upublic String replace(char oldchar,char newChar)+ }7 o* S2 Q1 `7 \& T
在字符串中用newChar字符替换oldChar字符
3 V7 y, R& a; n4 ]5 j upublic boolean startsWith(String prefix)
1 V7 R# U# ~- a! r6 b- @7 R判断字符串是否以prefix字符串开头;
3 w8 e7 c9 g5 v3 R0 R0 Vpublic boolean endsWith(String suffix)7 M8 x3 M k2 `. y5 D3 k
判断一个字符串是否以suffix字符串结尾;
: h9 e2 e6 H" p$ ?9 p' I4 F Dpublic String toUpperCase(), c$ g2 `9 t' `5 O2 R1 Q
返回一个字符串为该字符串的大写形式;) m7 ^5 f. ^( h, b
public String toLowerCase()5 _5 }5 ^$ [ [
返回一个字符串为该字符串的小写形式, h- |- U7 [2 _5 I8 |) H
public String substring(int beginIndex). O2 o* y, B! G8 {
返回该字符串从beginIndex开始到结尾的子字符串;
- z. X# }$ ]2 Epublic String substring(int beginIndex,int endIndex)7 P5 ~$ O5 ], m. K, G& f6 C1 t
返回该字符串从beginIndex开始到endsIndex结尾的子字符串1 |* o. {. B, K& m7 J }* m& T
public String trim()
+ X4 B" }$ {; g5 U8 F/ Z" u& I返回该字符串去掉开头和结尾空格后的字符串
+ p" [# u3 W% u5 g C) U$ Xpublic String[] split(String regex)
0 `" I, a0 T d, [$ j. F将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组* q) X9 \9 @0 A/ M2 ~( ?( g
实例: + B/ i* p7 @# M, q# L0 ]
public class SplitDemo{
- }7 j& e5 u8 `4 ~ public static void main (String[] args) {
' O) }3 |. \ L+ v& n
7 X2 ~3 j3 y# o% n( }$ L$ L6 l String date = "2008/09/10";
: C0 n! {! N$ r7 W+ N' E String[ ] dateAfterSplit= new String[3];4 J$ M. n7 u. z9 ~! s0 n
dateAfterSplit=date.split("/"); //以“/”作为分隔符来分割date字符串,并把结果放入3个字符串中。+ j+ r+ G& J+ }9 b1 q" i: k
9 ]/ Z9 ~+ K; k2 Q2 q2 I for(int i=0;i<dateAfterSplit.length;i++)
: T' l8 \$ f+ y' } System.out.print(dateAfterSplit+" ");
! X2 i0 k* `9 y, J }
% }4 q# B: f2 @. B1 \}" [/ n3 ~8 V1 H
( ?" G. R9 l, h; ?6 x
运行结果:2008 09 10 //结果为分割后的3个字符串6 o& P1 N7 ^) S
% ^0 T4 q- B- _7 [9 j" R% P
实例:, p' \$ I1 p1 M V2 _/ M
TestString1.java:! B/ m9 U: `2 m7 w* }. g
程序代码
# A( J$ ]$ A- \) E" U5 p% kpublic class TestString1/ g6 f. [4 L, H! z" B9 h0 a2 j
{
6 P: }0 c. B- w public static void main(String args[]) {' H6 V' U! V) s1 z8 v
String s1 = "Hello World" ;' \ z8 ^0 D8 Q# g
String s2 = "hello world" ;( o" F# m( Q$ p( X( s& E) H$ o
System.out.println(s1.charAt(1)) ;
/ _: X* i y1 P; C! t- f% M System.out.println(s2.length()) ;& B5 ]/ r$ `" E' e6 Y$ e8 o
System.out.println(s1.indexOf("World")) ;7 J8 F+ L# V r: w2 D( F/ ^/ P x1 e
System.out.println(s2.indexOf("World")) ;
( G1 S/ M, X" i* \2 k# j q2 d System.out.println(s1.equals(s2)) ;" r8 k0 H7 @/ G1 g V" L
System.out.println(s1.equalsIgnoreCase(s2)) ;( J$ w+ }( h2 w
: Q8 m# }# \- n1 G
String s = "我是J2EE程序员" ;
J! _8 } G8 t. ^" @) e( g String sr = s.replace('我','你') ;( G# h8 w* h6 J2 s
System.out.println(sr) ;: ^9 e# k/ A9 ^0 x, n6 c- g- Y( b
}8 ^6 x( |7 U3 l# F1 W
}$ w1 }6 Y5 g" F* N) `1 S; X# k
/ `4 y3 I% ^! U2 F# u l
TestString2.java:
( X% I6 A( } i0 d- e; f F程序代码
( ~% h/ {3 }$ h$ V$ A: s( x2 o9 ]6 t/ \6 @6 `6 M
public class TestString28 V- z8 q9 x% e" M3 ^6 K) L3 ?
{) i+ Z8 L; x5 v( o, E! H' O
public static void main(String args[]) {
6 \% f6 J) L, h: X/ P String s = "Welcome to Java World!" ;
. T; e N! p- N String s2 = " magci " ;
% U3 B6 M* [# w& c, { System.out.println(s.startsWith("Welcome")) ;
) G# i( _4 f4 X8 | System.out.println(s.endsWith("World")) ;
& b& q9 Q A" t* \ String sL = s.toLowerCase() ;/ E9 {7 u# }: p# F0 p+ H9 a
String sU = s.toUpperCase() ;9 u- Y. }3 w* I2 b
System.out.println(sL) ;9 [6 k* t" d' {0 ~3 a
System.out.println(sU) ;
+ A* b- P6 Q" H2 ]7 `* o* [- n String subS = s.substring(11) ;
" X* \9 [: K* U- z p# L, ]7 x; ^ System.out.println(subS) ;
4 l6 M" ~9 c' r9 n v String s1NoSp = s2.trim() ;1 h4 P/ Y( t& E7 `5 r, {' w
System.out.println(s1NoSp) ;
6 ] I2 P$ J8 V& w9 M% D. H }
( Y7 u, f* X I- ]* q4 M: ~( \4 E3 O& N
|
|