Java中String类方法说明

一、构造函数

1.String(byte[ ]bytes):通过byte数组构造字符串对象

2.String(char[ ]value):通过char数组构造字符串对象

3.String(Stingoriginal):构造一个original副本。即:拷贝一个original

4.String(StringBufferbuffer):通过StringBuffer数组构造字符串对象。

二、String类方法

说明:

①、所有方法均为public。

②、书写格式: [修饰符] <返回类型><方法名([参数列表])>

例如:static intparseInt(String s)

表示此方法(parseInt)为类方法(static),返回类型为(int),方法所需要为String类型。

1. char
charAt(int index)

取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。

例如:

String s = new String("abcdefghijklmnopqrstuvwxyz");

System.out.println("s.charAt(5): " + s.charAt(5) );

结果为:s.charAt(5): f

2. int compareTo(String anotherString)

当前String对象与anotherString比较相等关系返回0不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。

3. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。

例如:

String s1 = new String("abcdefghijklmn");

String s2 = newString("abcdefghij");

String s3 = newString("abcdefghijalmn");

String s4 = new String("abcdefghijalmn");

System.out.println("s1.compareTo(s2):" + s1.compareTo(s2) ); //返回长度差

System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //返回‘k‘-‘a‘的差

System.out.println("s4.compareTo(s3): " + s4.compareTo(s3)); //返回0

结果为:s1.compareTo(s2):4

s1.compareTo(s3):10

s4.compareTo(s3): 0

4. Stringconcat(String str)将该String对象与str连接在一起。’

System.out.println("s1.concat(s2): " + s1.concat(s2));

结果为:s1.concat(s2):abcdefghijklmnabcdefghij

5. boolean contentEquals(StringBuffersb) :将该String对象与StringBuffer对象sb进行比较。

System.out.println("s1.contentEquals(sb_buf): "+s1.contentEquals(sb_buf));

结果为:s1.contentEquals(sb_buf): false

6. static StringcopyValueOf(char[] data)

7. static StringcopyValueOf(char[] data, int offset, int count) :这两个方法将char数组转换成String,与其中一个构造函数类似。

System.out.println("s1.copyValueOf(c): "+s1.copyValueOf(c)
);

结果为:s1.copyValueOf(c): 0123456789

8. booleanendsWith(String suffix)该String对象是否以suffix结尾

例如:

String s1 = new String("abcdefghij");

String s2 = newString("ghij");

System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );

结果为:s1.endsWith(s2):true

9. boolean equals(Object anObject)当anObject不为空并且与当前String对象一样,返回true;否则,返回false

10. byte[] getBytes()将该String对象转换成byte数组

System.out.println("s1.getBytes(): "+s1.getBytes()
);

结果为:s1.getBytes(): [[email protected]

11. void getChars(intsrcBegin, int srcEnd, char[] dst, int dstBegin)

该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。

例如:

char[] s1 = {‘I‘,‘ ‘,‘l‘,‘o‘,‘v‘,‘e‘,‘ ‘,‘h‘,‘e‘,‘r‘,‘!‘};//s1=Ilove her!

String s2 = newString("you!");

s2.getChars(0,3,s1,7); //s1=I love you!

System.out.println( s1 );

结果为:I loveyou!

12. int hashCode()返回当前字符的哈希表码

System.out.println("s1.hashCode(): "+s1.hashCode());

结果为:s1.hashCode(): 2093908199

13. int indexOf(int ch)只找第一个匹配字符位置

System.out.println("s1.indexOf(‘b‘): "+s1.indexOf(‘b‘));

结果为:s1.indexOf(‘b‘): 1

14. int indexOf(int ch,intfromIndex)从fromIndex开始找第一个匹配字符位置

15. int indexOf(Stringstr)只找第一个匹配字符串位置

16. int indexOf(String str, intfromIndex)从fromIndex开始找第一个匹配字符串位置

例如:

String s = new String("write once, run anywhere!");

String ss = new String("run");

System.out.println("s.indexOf(‘r‘): " + s.indexOf(‘r‘) );

System.out.println("s.indexOf(‘r‘,2): " + s.indexOf(‘r‘,2) );

System.out.println("s.indexOf(ss): " + s.indexOf(ss) );

结果为:s.indexOf(‘r‘):1

s.indexOf(‘r‘,2): 12

s.indexOf(ss): 12

17. int lastIndexOf(intch)

18. int lastIndexOf(intch, int fromIndex)

19. intlastIndexOf(String str)

20. intlastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容

String s1 = new String("acbdebfg");

System.out.println(s1.lastIndexOf((int)‘b‘,7));

结果为:5

      (其中fromIndex的参数为7,是从字符串acbdebfg的最后一个字符g开始往前数的位数。既是从字符c开始匹配,寻找最后一个匹配b的位置。所以结果为5

21. int length()返回当前字符串长度

22. String replace(char oldChar, charnewChar)将字符号串中第一个oldChar替换成newChar

23. boolean startsWith(String prefix)该String对象是否以prefix开始

24. boolean startsWith(String prefix, inttoffset)该String对象从toffset位置算起,是否以prefix开始

例如:

String s = new String("write once, run anywhere!");

Stringss = new String("write");

Stringsss = new String("once");

System.out.println("s.startsWith(ss): " + s.startsWith(ss) );

System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );

结果为:s.startsWith(ss):true

s.startsWith(sss,6): true

25. Stringsubstring(int beginIndex)取从beginIndex位置开始到结束的子字符串

26. String substring(int beginIndex, intendIndex)取从beginIndex位置开始到endIndex位置的子字符串

27. char[ ] toCharArray()将该String对象转换成char数组

28. String toLowerCase()将字符串转换成小写

29. String toUpperCase() :将字符串转换成大写。

例如:

String s = new String("java.lang.Class String");

System.out.println("s.toUpperCase(): " + s.toUpperCase() );

System.out.println("s.toLowerCase(): " + s.toLowerCase() );

结果为:s.toUpperCase():JAVA.LANG.CLASS STRING

s.toLowerCase(): java.lang.class string

30. static StringvalueOf(boolean b)

31. static StringvalueOf(char c)

32. static StringvalueOf(char[] data)

33. static StringvalueOf(char[] data, int offset, int count)

34. static StringvalueOf(double d)

35. static StringvalueOf(float f)

36. static StringvalueOf(int i)

37. static StringvalueOf(long l)

38. static StringvalueOf(Object obj)

     以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。

三、常用方法

public charcharAt(int index)

返回字符串中第index个字符;

public int compareTo(Stringstr)/ public int compareToIgnoreCase(String str)

返回与字符串str比较的结果int,第二个比较时忽略大小写;

public int length()

返回字符串的长度;

public String concat(Stringstr)

返回连接str后的字符串;

public int indexOf(String str)

返回字符串中第一次出现str的位置;

public int indexOf(String str,intfromIndex)

返回字符串从fromIndex开始第一次出现str的位置;

public booleanequalsIgnoreCase(String another)

比较字符串与another是否一样(忽略大小写);

public String replace(charoldchar,char newChar)

在字符串中用newChar字符替换oldChar字符

public StringreplaceAll/replaceFirst(String oldStr,String newStr)

在字符串中用串newStr代替原串中所有/第一次出现的子串oldStr,返回新串

public boolean startsWith(Stringprefix)

判断字符串是否以prefix字符串开头;

public boolean endsWith(Stringsuffix)

判断一个字符串是否以suffix字符串结尾;

public String toUpperCase()

返回一个字符串为该字符串的大写形式;

public String toLowerCase()

返回一个字符串为该字符串的小写形式

public String substring(intbeginIndex)

返回该字符串从beginIndex开始到结尾的子字符串;

public String substring(intbeginIndex,int endIndex)

返回该字符串从beginIndex开始到endsIndex结尾的子字符串

public String trim()

返回该字符串去掉开头和结尾空格后的字符串,但是不去中间的空格

public String[] split(String regex)

将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组

四、源码结果

public class StringTest {

	public static void main(String[] args) {
	      byte[] b = {'a','b','c','d','e','f','g','h','i','j'};
	      char[] c = {'0','1','2','3','4','5','6','7','8','9'};

	      String sb = new String(b);             //abcdefghij
	      String sb_sub = new String(b,3,2);     //de

	      String sc = new String(c);             //0123456789
	      String sc_sub = new String(c,3,2);     //34

	      String sb_copy = new String(sb);       //abcdefghij 

	      StringBuffer sb_buf = new StringBuffer("hello").append("world");
	      String sb_suf = new String(sb_buf);    //helloworld

	      System.out.println("sb:"+sb);
	      System.out.println("sb_sub:"+sb_sub);
	      System.out.println("sc:"+sc);
	      System.out.println("sc_sub:"+sc_sub);
	      System.out.println("sb_copy:"+sb_copy);
	      System.out.println("sb_suf:"+sb_suf);

	      String s1 = new String("abcdefghijklmn");
          String s2 = new String("abcdefghij");
          String s3 = new String("abcdefghijalmn");
          String s4 = new String("abcdefghijalmn");
          String s5 = new String("  a  bc d  ");
          System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) ); //返回长度差
          System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //返回'k'-'a'的差
          System.out.println("s4.compareTo(s3): " + s4.compareTo(s3) ); //返回0

          System.out.println("s1.concat(s2): "+s1.concat(s2));

          System.out.println("s1.contentEquals(sb_buf): "+s1.contentEquals(sb_buf)); 

          System.out.println("s1.copyValueOf(c): "+s1.copyValueOf(c) );

          System.out.println("s1.getBytes(): "+s1.getBytes() );

          System.out.println("s1.hashCode(): "+s1.hashCode());

          System.out.println("s1.indexOf('b'): "+s1.indexOf('b'));

          System.out.println("s1.indexOf('i', 1): "+s1.indexOf('i', 1));

          System.out.println("s5.trim(): "+s5.trim());//去掉开始和结尾的空格

          String date = "2008/09/10";
          String[ ] dateAfterSplit= new String[3];
          dateAfterSplit=date.split("/");         //以“/”作为分隔符来分割date字符串,并把结果放入3个字符串中。

          for(int i=0;i<dateAfterSplit.length;i++)
                     System.out.print(dateAfterSplit[i]+" ");
          System.out.println();

          //介绍一个简单的应用,判断一个自然数是几位数字的逻辑代码如下:
          int n = 12345;
          String strTest = String.valueOf(n);
          System.out.println(strTest.length());
	}
}
sb:abcdefghij
sb_sub:de
sc:0123456789
sc_sub:34
sb_copy:abcdefghij
sb_suf:helloworld
s1.compareTo(s2): 4
s1.compareTo(s3): 10
s4.compareTo(s3): 0
s1.concat(s2): abcdefghijklmnabcdefghij
s1.contentEquals(sb_buf): false
s1.copyValueOf(c): 0123456789
s1.getBytes(): [[email protected]
s1.hashCode(): 2093908199
s1.indexOf('b'): 1
s1.indexOf('i', 1): 8
s5.trim(): a  bc d
2008 09 10
5

五、引用参考

http://www.cnblogs.com/springcsc/archive/2009/12/03/1616326.html

http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html

时间: 2024-10-21 20:57:18

Java中String类方法说明的相关文章

【转载】Java中String类的方法及说明

转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数     String(byte[ ] bytes):通过byte数组构造字符串对象.     String(char[ ] value):通过char数组构造字符串对象.     String(Sting original):构造一个original的副本.即:拷贝一个original.     String(Strin

java中String类小结

构建一个字符串 1.用字符串直接量: String message = new String("Welcome to java"); 2.用字符串直接量: String message = "Welcome to java"; 3.用字符数组 Char[] charArray = {'m', 'y'}; String message = new String(charArray); 不可变字符与限定字符串 String对象是不可变的,内容不能改变 java虚拟机为了

Java中String类的方法及说明

String : 字符串类型 一.构造函数     String(byte[ ] bytes):通过byte数组构造字符串对象.     String(char[ ] value):通过char数组构造字符串对象.     String(Sting original):构造一个original的副本.即:拷贝一个original.     String(StringBuffer buffer):通过StringBuffer数组构造字符串对象.  例如:      byte[] b = {'a',

【转】java中Thread类方法介绍

原文: java中Thread类方法介绍 http://blog.csdn.net/seapeak007/article/details/53395609 这篇文章找时间分析一下!!!:http://blog.csdn.net/apei830/article/details/4503112 --------------------------------------------------------------- 方法摘要 static int activeCount()          

java中String的常用方法

java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3. getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[]

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集

Java中String类学习总结

java中String类的使用频率非常高,本人在学习此模块时,认为下列几点知识值得注意: 一.String是不可变对象 java.lang.String类使用了final修饰,不能被继承.Java程序中的所有字面值,即双引号括起的字符串,如"abc",都是作为String类的实例实现的.String是常量,其对象一旦构造就不能再被改变.换句话说,String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创造了一个全新的String对象,以包含修改后的字符串内容.而最

java中string.trim()函数的使用

java中string.trim()函数的的作用是去掉字符串开头和结尾的空格,防止不必要的空格导致的错误. public static void main(String arg[]){ String a=" abc"; String b="abc"; System.out.println(b.equals(a)); //不会相同,因为a中有空格 a=a.trim();//去掉字符串中的空格 System.out.println(a.equals(b)); } 控制台