Java常用类--String总结

String简介

String类主要用来处理字符串,其提供了很多字符串的实用处理方法。它的声明及其成员变量如下:

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage、*/
    private final char value[];

    /** Cache the hash code for the string */
    private int hash; // Default to 0

可以看到String类被final修饰,其成员变量value[]用来存放字符串,被private final修饰,并且没有提供setter方法,故String是个不可变的类,其对象所包含的字符串内容不会被修改。hash变量用来缓存哈希码,因为该类是不可变的,所以通过缓存哈希码来减少每次计算其哈希码的开销。

阅读更多:为什么String类是不可变的?如何写一个不可变类?

String类的构造方法

1、String():创建一个内容为空的字符串“”。

2、String(String original):构造一个original的副本,即:拷贝一个original。

3、String(char value[]):字符数组参数指定字符串的内容。
4、String(byte bytes[]):根据本地平台默认的字符编码,由字节数组构造一个字符串。

5、String(byte bytes[], Charset charset):根据参数charset指定的字符编码,由字节数组构造一个字符串。

6、String(StringBuffer buffer):通过StringBuffer构造字符串对象。

7、String(StringBuilder builder):通过StringBuilder构造字符串对象。

String类常用的方法

1、char charAt(int index):返回字符串中index位置上的字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。

String string = "ABCDEFGHIJKLMN";
char c = string.charAt(3);//返回D

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

String s = "ABCDEFG";
String s1 = "ABCDXF";
System.out.println(s.compareTo(s1));
//打印-19,因为 (int)'E' - (int)'X' = -19

String s = "ABCDEFG";
String s1 = "ABCD";
System.out.println(s.compareTo(s1));
//打印3

3、String concat(String str) :把字符串str附加到当前字符串的末尾。

String s = "ABCDEFG";
String s1 = "ABCD";
System.out.println(s.concat(s1));
//打印ABCDEFGABCD

4、boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。

5、boolean startsWith(String prefix):该String对象是否以prefix开头。

6、boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。

7、boolean endsWith(String suffix):该String对象是否以suffix结尾。

8、boolean equals(Object anObject)与boolean equalsIgnoreCase(String anotherString):判断两个字符串的内容是否相同。一个区分大小写一个不区分大小写。

9、void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :从当前字符串中拷贝若干字符到dst[]中,从srcBegin位置开始取字符,到srcEnd-1位置结束,dstBegin为提取的字符存放到字符数组中的起始位置。

String string = "ABCDEFGHIJKLMN";
char[] cs = {'O','O','O','O','O','O','O','O','O','O'};
string.getChars(2, 5, cs, 3);
//结果cs = OOOOCDEOOOO

10、int indexOf(int ch) :只找第一个匹配字符位置。
11、int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置。
12、int indexOf(String str) :只找第一个匹配字符串位置。
13、int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置。

String string = "ABCDEFGHIJKLMN";
System.out.println(string.indexOf(70));//返回5
System.out.println(string.indexOf(70, 7));//返回-1
System.out.println(string.indexOf("FG"));//返回5
System.out.println(string.indexOf("FG", 7));//返回-1

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

lastIndexOf(int ch, int fromIndex)方法从字符串fromIndex的位置开始,向前找出第一个匹配的字符的位置,而lastIndexOf(String str, int fromIndex)方法从字符串fromIndex + str.value.length - 1的位置开始向前查找第一个匹配的字符串的位置。

String string = "ABCDEFGHABCDEFG";
System.out.println(string.lastIndexOf((int) 'F'));//返回13
System.out.println(string.lastIndexOf((int) 'F', 5));));//返回5
System.out.println(string.lastIndexOf((int) 'F', 4));));//返回-1
System.out.println(string.lastIndexOf("FG"));));//返回13
System.out.println(string.lastIndexOf("FGHA", 5));));//返回5
System.out.println(string.lastIndexOf("FGHA", 4));));//返回-1

18、int length() :返回当前字符串长度。

19、String replace(char oldChar, char newChar) :将字符号串中所有oldChar替换成newChar。

20、String replaceFirst(String regex, String replacement)跟String replaceAll(String regex, String replacement):把字符串中的regex替换成replacement,replaceFirst方法是替换匹配的第一个,replaceAll方法是替换全部。

21、String[] split(String regex):根据参数regex把原本的字符串分割成几个子字符串。

String s = "what,why,when";
String[] list = s.split(",");
//list = {"what", "why", "when"};

22、String[] split(String regex, int limit):根据参数regex把原本的字符串分割成limit个子字符串。

String s = "what,why,when";
String[] list = s.split(",", 1);
System.out.println(list.length);//打印1
System.out.println(list[0]);//打印what,why,when

String[] list = s.split(",", 2);
System.out.println(list.length);//打印2
System.out.println(list[0]);//打印what
System.out.println(list[1]);//打印why,when

String[] list = s.split(",", 1);
System.out.println(list.length);//打印3
System.out.println(list[0]);//打印what
System.out.println(list[1]);//打印why
System.out.println(list[2]);//打印when

23、String trim():把字符串首尾的空格删除。

String s = " hello ";
System.out.println(s.trim());//打印hello

24、String substring(int beginIndex) :取从beginIndex位置开始到结束的子字符串。

25、String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串。

26、char[ ] toCharArray() :将该String对象转换成char数组。

27、String toLowerCase() :将字符串转换成小写。

28、String toUpperCase() :将字符串转换成大写。

29、String intern():一个初始时为空的字符串池,它由类 String 私有地维护。 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。 它遵循对于任何两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。

30、static String valueOf(char c)
31、static String valueOf(char[] data)
32、static String valueOf(char[] data, int offset, int count)
33、static String valueOf(double d)
34、static String valueOf(float f)
35、static String valueOf(int i)
36、static String valueOf(long l)
37、static String valueOf(boolean b)
38、static String valueOf(Object obj)
30~38 用于将各种不同类型转换成Java字符类型。这些都是类方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值