我的日常

登录/注册
您现在的位置:论坛 新手区 新手教程 > Java中String类的方法及说明
总共48087条微博

动态微博

查看: 2077|回复: 0

Java中String类的方法及说明

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2017-05-02 21:25:28 |只看该作者 |倒序浏览
String : 字符串类型! ^; _8 t+ Q1 m9 w0 e' \0 s+ I; R

5 H/ L- V/ ]$ H/ \" H4 n一、构造函数
# y- K7 }1 n# f$ Y: ~1 {     String(byte[ ] bytes):通过byte数组构造字符串对象。
3 H* o' d" {- W5 H8 h! U     String(char[ ] value):通过char数组构造字符串对象。2 p" Y3 @- L3 e- N% X
     String(Sting original):构造一个original的副本。即:拷贝一个original。/ {& G7 H$ I( ], F; z) ]7 i$ q
     String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。  : _1 @2 B( M$ r0 w* w
例如:  n# w# y) ^; r, {. c
      byte[] b = {'a','b','c','d','e','f','g','h','i','j'};* t; ^3 D5 W/ \  `3 J7 C' E
      char[] c = {'0','1','2','3','4','5','6','7','8','9'};
8 @: I/ c7 X' x; ^: u/ Q  R      String sb = new String(b);                 //abcdefghij
+ n/ [0 t5 K9 `; _      String sb_sub = new String(b,3,2);     //de
4 e5 f2 d* k! ~6 |' e. |# n6 a/ [      String sc = new String(c);                  //0123456789& E6 J# E3 @2 [0 p
      String sc_sub = new String(c,3,2);    //34
1 J4 P! F; I$ M" n* |: z      String sb_copy = new String(sb);       //abcdefghij  5 ~4 @; @" b* x9 p* ^
      System.out.println("sb:"+sb);
' G' S% G1 d- t+ T; @1 x4 B      System.out.println("sb_sub:"+sb_sub);
5 [8 H* X% D* {( ?$ ]) D      System.out.println("sc:"+sc);
3 c! }; V& Q8 [1 v      System.out.println("sc_sub:"+sc_sub);. G8 o1 H  F1 v+ e- W1 F
      System.out.println("sb_copy:"+sb_copy);% X- |# c6 [' }% z
      输出结果:sb:abcdefghij9 y4 L' X( j) I! f! _, P" \
                      sb_sub:de% @% N4 E; V4 ?
                       sc:0123456789
. W$ J, i( _$ X! H+ }# C6 d                        sc_sub:34
" y" n# j. J* C                        sb_copy:abcdefghij4 q6 N* [8 T, p% ~6 q4 H) ?
$ R3 F, P5 N& h
二、方法:
/ x/ _' T$ R1 o% e! Y% a! J
% k2 |1 D  y. S' P8 ?# z     说明:①、所有方法均为public。
- V- q+ ^! u# q/ H" f# N5 R           ②、书写格式: [修饰符] <返回类型><方法名([参数列表])>& T" f; W1 R, J0 \9 w+ I

2 [4 F' I! B5 L5 ~6 a      例如:static int parseInt(String s)1 A/ @  A( G3 g" e; {
      表示此方法(parseInt)为类方法(static),返回类型为(int),方法所需要为String类型。
) b0 S8 w- o* Z! _
/ T; b3 d9 T7 ]1. char charAt(int index) :取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。
# u- @: H- Y' H3 x! ~) ^
1 \+ o2 p) H% u* g6 J3 {; A) c2 |3 g2 d2 M( g( Q/ [6 M7 n' _

5 x% p- B) b) z' v! R% k+ G* l    例如:String s = new String("abcdefghijklmnopqrstuvwxyz");
' }- N" w& N6 [& M! B# F9 |; V          System.out.println("s.charAt(5): " + s.charAt(5) );! z6 V( X4 U  k
          结果为: s.charAt(5): f
" ]# [3 l# V/ A6 s5 Y0 o+ D3 G2. int compareTo(String anotherString) :当前String对象与anotherString比较。相等关系返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。- L2 _+ I- h" z
3. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。" o- o, o5 j7 I2 C/ H5 R
    例如:String s1 = new String("abcdefghijklmn");
$ y  R0 F6 I/ X. t% R: P& r. C1 ]            String s2 = new String("abcdefghij");, K' X4 Y, Q8 N8 I+ \) [
           String s3 = new String("abcdefghijalmn");$ I2 X- S7 m- h- }( k
           System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) ); //返回长度差2 u; g3 G1 w4 F" u, y
           System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //返回'k'-'a'的差
1 n  u, X- D) @5 _7 b" A+ l           结果为:s1.compareTo(s2): 4( s% |8 R" v* X! _9 S& F. f
                       s1.compareTo(s3): 10
% k8 ~7 O( X  U9 z6 W" Z4. String concat(String str) :将该String对象与str连接在一起。7 M* B0 Z6 k7 @+ O
5. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。) h. |# V/ @4 i$ _' b
6. static String copyValueOf(char[] data) :
$ w2 ^3 F: b: p- {0 t0 P/ j0 D7. static String copyValueOf(char[] data, int offset, int count) :这两个方法将char数组转换成String,与其中一个构造函数类似。
0 u/ I. F) X: u: H8. boolean endsWith(String suffix) :该String对象是否以suffix结尾。) f8 O( X/ @% Z3 S! h- `
    例如:String s1 = new String("abcdefghij");
; N% R: w! j, @# ]" q5 y5 Z6 X           String s2 = new String("ghij");! X4 |/ ]! M8 `+ L5 P9 n5 z  e
           System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );
9 C/ H) ]$ l# }6 v$ y           结果为:s1.endsWith(s2): true
1 c/ d7 L' k; e& i) A2 K9. boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false。2 Y7 Y8 l( Z2 B5 P0 l
10. byte[] getBytes() :将该String对象转换成byte数组。
5 u# ?8 F* H7 Q- N+ z11. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。$ ]4 F# R' d$ E
     例如:char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!
" C* g. Y% ]" J8 E) G: i           String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!* O3 M0 `6 ]9 \$ V# z, t
           System.out.println( s1 );
3 W  ^# J) M' r1 g& q( B! C3 J! Z           结果为:I love you!
( m3 l  {0 p* Z, d$ N4 e12. int hashCode() :返回当前字符的哈希表码。
8 c2 z0 R6 F8 x13. int indexOf(int ch) :只找第一个匹配字符位置。
  d* B. U- a$ D* |! S7 Q- z14. int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置。. f5 n# W1 }; B9 g/ c
15. int indexOf(String str) :只找第一个匹配字符串位置。
" m( N. h6 D* X; P# b16. int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置。
7 l: f+ H3 p$ L( q& L2 i6 X9 Z5 [      例如:String s = new String("write once, run anywhere!");% Z! F5 ^2 }( R+ Z- H/ C, g
              String ss = new String("run");
$ i8 E. S, N7 Q  l: z              System.out.println("s.indexOf('r'): " + s.indexOf('r') );
/ o: Q7 @3 b/ r              System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) );  W& Z2 g, X  L9 [6 n( E/ s" \
              System.out.println("s.indexOf(ss): " + s.indexOf(ss) );
. b. r; B8 |2 H. T. P. K              结果为:s.indexOf('r'): 1
# t8 w* G% Y- h3 t                      s.indexOf('r',2): 12
! M4 Q* v( H- _6 ?                      s.indexOf(ss): 12' E, E' [0 \- w, u/ j. l* y
17. int lastIndexOf(int ch)7 w' q5 i) [( q" Z0 h
18. int lastIndexOf(int ch, int fromIndex)  ]& S; Q% Y  D' M* h8 l; }* c1 s
19. int lastIndexOf(String str)
( P  x6 u) A3 m0 e3 ?9 o* w20. int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容。1 @' d* }# x9 h, L: B0 B2 `
public class CompareToDemo {
9 j, y1 [8 o2 J9 N  c; O+ H      public static void main (String[] args) {; }8 O' A  e& K6 j' Y
           String s1 = new String("acbdebfg");! [" X2 t  Z! F7 A

* B  M, ]8 V0 K! [' I1 ]- Z  M           System.out.println(s1.lastIndexOf((int)'b',7));+ F! F9 m# {; y. ~7 y
     }- J% }! m, [0 J. {8 u; U/ D' e" L
}/ K" `0 @6 Q: G, `
运行结果:5; V; w) J0 r8 K& D5 }0 F# n# H
       (其中fromIndex的参数为 7,是从字符串acbdebfg的最后一个字符g开始往前数的位数。既是从字符c开始匹配,寻找最后一个匹配b的位置。所以结果为 5)' D/ \. M, Y- k0 y( m
% q! I5 Z0 a  G9 @
" y# c, g8 K/ r0 l. K" j
21. int length() :返回当前字符串长度。7 f0 R3 w8 ?* ]" Q( ~- r  D
22. String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar。
1 O2 D- v: N% ], J: i23. boolean startsWith(String prefix) :该String对象是否以prefix开始。
, a5 m' }6 F6 ^3 P3 f8 }24. boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。
8 l  p& o/ a6 y3 @$ D! e; z! r     例如:String s = new String("write once, run anywhere!");
' p% p7 f4 G2 d             String ss = new String("write");
3 ?5 d9 [8 h& }0 v             String sss = new String("once");
2 _/ E8 y# Y6 l; Q& \             System.out.println("s.startsWith(ss): " + s.startsWith(ss) );
- h3 |" F6 e3 i* z8 c             System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );6 u; T# o! N8 U4 A, u
             结果为:s.startsWith(ss): true
) H  S: `. i( u- ]                     s.startsWith(sss,6): true; C+ `, L4 O- c+ a+ m; n
25. String substring(int beginIndex) :取从beginIndex位置开始到结束的子字符串。
# V, f3 e1 S  Q' o/ Q3 ]26.String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串。7 C! f" t  ]! H( j; e
27. char[ ] toCharArray() :将该String对象转换成char数组。
- g! y8 z6 Q, x28. String toLowerCase() :将字符串转换成小写。8 _' Z5 t7 E( k$ S  c
29. String toUpperCase() :将字符串转换成大写。
1 }- _/ W( x$ I* ~$ k" p     例如:String s = new String("java.lang.Class String");' f, d1 P; ~' ~% _/ h
             System.out.println("s.toUpperCase(): " + s.toUpperCase() );2 h# ~4 p% I4 h. w. P! ]" h7 h
             System.out.println("s.toLowerCase(): " + s.toLowerCase() );7 {, s$ J; c" A$ M9 W8 b0 |
             结果为:s.toUpperCase(): JAVA.LANG.CLASS STRING
- ]4 r, p$ T: x1 y  F                  s.toLowerCase(): java.lang.class string
+ F* C5 T6 V: a& V! ^+ f! q# [30. static String valueOf(boolean b)
/ c6 R# Y! \( r- ~* f31. static String valueOf(char c)
  c1 k! e) c; n6 v) q32. static String valueOf(char[] data)+ d9 N% H; {" h
33. static String valueOf(char[] data, int offset, int count)( S0 E8 P8 b- D# S: X
34. static String valueOf(double d)
! b  j" Q& `8 e* w35. static String valueOf(float f)
2 h$ A  X% N- f+ l9 k4 A! j) A36. static String valueOf(int i)( p: I' z  F3 x9 J% N% z$ D
37. static String valueOf(long l)5 m9 v5 |5 p+ ^2 s) J+ c# |
38. static String valueOf(Object obj)) T+ V4 Z% q- Y- I
     以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。, ?" {7 K6 N  L! ~# _- R- h
! ~$ f4 F" ?# Z
/ X5 w1 u2 _& z' z. ^6 d

5 k, Q% a+ W: d$ h7 u
+ X$ c. {' S  {! e3 W9 J4 {7 t2 L3 j5 m9 |( _5 n
Java中String类的常用方法:6 |4 A; X' _  R/ i* [5 ?! X
" X6 U) l- O) m3 `: s  y3 d3 \
public char charAt(int index)- j! c8 O; s) e2 O) {
返回字符串中第index个字符;
3 M- W9 s! b& f9 ?2 I+ npublic int length()
- x, G1 K# V4 U% _3 G返回字符串的长度;
2 s8 Z. ?% g! c% s4 X5 J3 {public int indexOf(String str)! \& l# O2 F" k: T3 C/ \( v1 |9 U  O/ K
返回字符串中第一次出现str的位置;
1 t& y: M: ?& q2 t" S$ ypublic int indexOf(String str,int fromIndex)' U9 h( Z: q- m& y& h+ Q/ V  [
返回字符串从fromIndex开始第一次出现str的位置;' Z/ F, L$ g7 m& V4 |; j
public boolean equalsIgnoreCase(String another)& F, z( ]- O& N
比较字符串与another是否一样(忽略大小写);$ K/ D0 C' o/ h, _; G
public String replace(char oldchar,char newChar)4 c5 E, H( t2 ^! R9 W2 v" v$ z
在字符串中用newChar字符替换oldChar字符
4 m) |# ^0 ?# i" b  }# D* fpublic boolean startsWith(String prefix)
! a% Y5 B) {" j! j( h& O; G$ t/ e判断字符串是否以prefix字符串开头;3 R. R  b( B3 t# E8 G7 C( l  c
public boolean endsWith(String suffix)
' O  A0 |  f, E. E' i判断一个字符串是否以suffix字符串结尾;# v/ B4 C3 H. p8 ^' y  l: O
public String toUpperCase()4 `0 r3 s/ Y0 f2 R- K1 z' c
返回一个字符串为该字符串的大写形式;  b7 n+ {% j3 N: s3 U% ~( y, C7 B7 r
public String toLowerCase()6 b! B  x2 c8 J- W" Y
返回一个字符串为该字符串的小写形式4 ~0 K  w; j; O( }2 z2 n! d
public String substring(int beginIndex)
6 o: ]0 r7 X9 z5 t* C返回该字符串从beginIndex开始到结尾的子字符串;
0 J" x7 \5 P2 T5 D3 O3 zpublic String substring(int beginIndex,int endIndex)* \$ }8 A+ S, l: [% L4 q6 ^( @/ s/ ~( F
返回该字符串从beginIndex开始到endsIndex结尾的子字符串
; g! w7 {3 @6 j7 @public String trim(), ]0 N2 H7 z4 E" F5 E
返回该字符串去掉开头和结尾空格后的字符串
5 `3 a& Y& l5 F$ Z+ R0 Y% Ppublic String[] split(String regex)# Q( [: c' q! V
将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组
$ {3 [  ~( o+ v/ U" E实例:  / X) d. `) t# z5 @
public class SplitDemo{
, D! [/ f  j7 E* I- v) B- ?6 f     public static void main (String[] args) {3 W! y$ _( R  {, S! m
# h3 `: l; H+ t- m$ P  ?$ ^# a4 w5 p
             String date = "2008/09/10";) p0 \1 G! l: o/ b+ P/ C
            String[ ] dateAfterSplit= new String[3];- e! e* v9 _( L, T
            dateAfterSplit=date.split("/");         //以“/”作为分隔符来分割date字符串,并把结果放入3个字符串中。
3 i3 Y1 J, F  p+ Y9 f1 v. x5 Q+ {' Q
            for(int i=0;i<dateAfterSplit.length;i++)0 }; Q, l+ o8 M0 y. _
                       System.out.print(dateAfterSplit+" ");. }7 O* S: B5 p. R# q
      }8 z7 u: T3 c$ d& f
}
2 K( F! C0 P' r0 e: s3 O
0 l9 j  H% O+ Y( v, O  v2 p5 |, ^运行结果:2008 09 10          //结果为分割后的3个字符串/ `  F, U/ p% I7 T2 k8 p4 e) @
8 |9 t0 V0 m& x, o: K8 U, v
实例:
: S9 w, l- \9 s( d$ s' tTestString1.java:
2 z- m" W5 ~" D2 S" j程序代码
7 R8 U) o+ {! i6 _/ v+ ?9 mpublic class TestString1
4 H9 U3 ^5 C; v2 O* g, s' s. X{
, G" @4 Q" L, c( D3 z/ g7 V    public static void main(String args[]) {
1 o2 b* A9 T( u$ g! q& p4 I8 I4 @        String s1 = "Hello World" ;
/ E8 L0 p. S# d/ H8 r        String s2 = "hello world" ;
3 {! ~  [9 A+ \- G        System.out.println(s1.charAt(1)) ;1 l; b& E) B+ M0 M0 H. J9 b" _
        System.out.println(s2.length()) ;0 W2 }/ a8 H0 t
        System.out.println(s1.indexOf("World")) ;0 N: L$ _9 ~2 L5 {: l
        System.out.println(s2.indexOf("World")) ;
* ~3 R' L3 m5 W$ E. o  c% ^" G3 Z        System.out.println(s1.equals(s2)) ;
+ K: \  K/ T/ {$ b, r5 y& ?" p3 M        System.out.println(s1.equalsIgnoreCase(s2)) ;% e' d1 R* P: T2 Y
) D1 ]: K& M+ x) |
        String s = "我是J2EE程序员" ;; J2 h4 S1 ]4 v1 O% E+ Z+ T
        String sr = s.replace('我','你') ;/ C1 @4 o& F  O0 r, y: t( F
        System.out.println(sr) ;+ ?! J/ K. L9 d- m3 [
    }
5 k' X5 m% e" z1 @# j9 @}
; x* b) z; J3 _1 j( V. S# D. z9 f8 q9 e2 J3 k- q
TestString2.java:
% w5 x& q' ~+ N1 \9 G程序代码
8 _9 e; d6 Q2 t0 {" [2 S; H  k" b' r7 t9 ?: G* h$ M& X8 c5 k
public class TestString20 {- T1 {8 {  W2 j1 i3 q
{
& g8 Q0 n) N- }" Q; A    public static void main(String args[]) {+ A' x  g" ?0 ?7 c
        String s = "Welcome to Java World!" ;
! n0 H1 o( Y( g9 p        String s2 = "   magci   " ;0 @. H! p: v3 c3 t+ `  i3 n* V
        System.out.println(s.startsWith("Welcome")) ;
- F8 ~' j1 _( }- [        System.out.println(s.endsWith("World")) ;
* \5 V3 ?0 G8 g5 I$ h' l        String sL = s.toLowerCase() ;
/ ?) T0 Z" g& N& Q. R        String sU = s.toUpperCase() ;
5 u; f: ]. Q7 n- m) c        System.out.println(sL) ;" _9 k. |% \$ d
        System.out.println(sU) ;2 S( x+ K% ~% c
        String subS = s.substring(11) ;" b4 t4 }; ]8 U0 ?0 W
        System.out.println(subS) ;9 q1 G$ I2 U: A+ f' Y, W
        String s1NoSp = s2.trim() ;4 B- F+ O% X- ^; O; [* k7 S, p) p
        System.out.println(s1NoSp) ;
# Q: D8 B& H$ f" k1 J* M+ t    }
3 M% `/ l. E% `4 l4 o2 T4 K5 i& s. t3 }( y

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表