Java基础:String常用方法总结

String是一个final类,故是一个引用类

字符串是一个常量,创建后就不可更改,赋值后可以重新赋值。

	String str = "Hello world!";

字符串可看成是一个字符数组组成的串:

	char[] c = {'H','e','l','l','o',' ','w','o','r','l','d','!'}; 
	String string = new String(c);
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。

那在这里简单说几种常用方法

1. charAt(int index)

返回指定索引处的 char 值。

	int index = 6;
	char ch = str.charAt(index);    //返回的是字符串中该索引位置的字符

ps:索引不可超过字符串的长度,否则会报StringIndexOutOfBoundsException异常。

2. compareTo(String anotherString)

按字典顺序区分大小地比较两个字符串。

	String string = "hello world!";
	//如果参数字符串等于此字符串,则返回值0
	int num = str.compareTo(str);    //num = 0
	//如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值
	int num1 = str.compareTo(string);    //H跟h不同,比较,由ASCII码72(str的H)-104(string的h),num1 = -32
	//如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值
	int num2 = string.compareTo(str);    //H跟h不同,比较,由ASCII码104(string的h)-72(str的H),num2 = 32
3. compareToIgnoreCase(String anotherString)

按字典顺序不区分大小地比较两个字符串。

	String string = "hello world!";
	//如果参数字符串不区分大小写等于此字符串,则返回值0
	int num = str.compareTo(string);    //num = 0
4. startsWith(String prefix)

判断字符串是否由字符串prefix开头。

	boolean b = str.startsWith("he");    //str以"He"开头,b = false
	boolean b1 = string.startsWith("he");    //string以"he"开头,b1 = true
5. endsWith(String suffix)

判断字符串是否由字符串suffix结尾。

	boolean o = str.endsWith("!");    //str以英语符号"!"结尾,o = true
	boolean o1 = string.endsWith("!");    //string以英语符号"!"结尾并不是中文符号"!",b1 = false
6. indexOf(int ch) 和 indexOf(int ch, int fromIndex)

indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。若字符串中没有该字符,则返回-1. 该方法的参数还可以是字符串。

indexOf(int ch, int fromIndex) 从fromIndex索引位置开始搜索,返回指定字符在此字符串中第一次出现处的索引。若字符串中没有该字符,则返回-1. 该方法的第一个参数还可以是字符串。

	int i = str.indexOf('a');    //str中没有字符a,返回-1
	int i1 = str.indexOf('o');    //str中o字符第一次出现的位置是4(从0开始),返回值为4
	int i2 = str.indexOf('o',5);    //从索引5开始,字符o第一次出现的位置是整个字符串的第7位,返回值为7
7. lastIndexOf(int ch) 和 lastIndexOf(int ch, int fromIndex)

与indexOf类似,lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现的索引,而lastIndexOf(int ch, int fromIndex)则是从指定索引开始反向搜索(从后往前),返回指定字符在字符串0-fromIndex位置中最后一次出现的索引值。

	i = str.lastIndexOf('l');    //字符l最后一次出现的位置是在world中,索引是9
	i2 = str.lastIndexOf('l',5);    //字符l在0-5索引中最后一次出现是在hello的第二个l,索引是3
8. contains(CharSequence s)

当该字符串中包含指定的char值序列时,返回true,否则返回false。当s为null时,抛出NullPointerException异常。

	boolean con = str.contains("hello");    //此时con为false
	con = string.contains("hello");    //此时con为true
9. toLowerCase() 和 toUpperCase()

toLowerCase() 把所有字符转换成小写,原本字符是大写的不变;

toUpperCase() 把所有字符转换成大写,原本字符是小写的不变。

	System.out.println(string.toUpperCase());    //输出HELLO WORLD!
	System.out.println(string);    //输出hello world!,因为没有将string.toUpperCase()赋值给string,string还是保持不变
	System.out.println(string.toLowerCase());    //输出hello world!
10. trim()

返回去除字符串首尾的空白之后的此字符串,字符串首尾没有空白,返回该字符串。

	String temp = "     留白 ";
	System.out.println(temp);    //输出“     留白 ”
	temp = temp.trim();    //trim()处理后重新赋值
	system.out.println(temp);    //输出“留白”
11. substring(int beginIndex) 和 substring(int beginIndex, int endIndex)

返回此字符串的一个子字符串。

substring(int beginIndex) 截取的是从binginIndex索引开始到结尾的字符串;

substring(int beginIndex, int endIndex) 截取的是从beginIndex索引开始到endIndex索引的字符串。

	System.out.println(str.substring(2));    //输出"llo world!"
	System.out.println(str.substring(5, 10));    //输出" worl"
12. toCharArray()

将此字符串转换为一个新的字符数组,也就对应了在前面说的,可以将一个字符串看成是一个字符数组。

	char[] char1 = str.toCharArray();    //将字符串转换为新的字符数组
	System.out.println(char1[0]);    //数组中0索引的字符是H
13. valueOf(Object obj)

valueOf() 是将传递的参数转换成String类型的表现形式,该方法是静态的,可以直接用类名调用。

可以看出,valueOf() 传递的参数类型是Object,那么就是说,可以该参数类型可以为绝大部分数据类型,但官方API中没有写出参数类型为byte的方法。

	String number = String.valueOf(123456789);    //将int参数类型转换成String表示形式
    System.out.println(number);
    String bString = String.valueOf(string.contains("hello"));    //将boolean参数类型转换成String表示形式
    System.out.println(bString);
    Object object = null;
	System.out.println(String.valueOf(object));    //若objcet为null,valueOf会返回字符串"null",注意与下面toString()对比
14. toString()

返回用字符串类型表示的调用者对象本身。一般当你新建一个类的时候都会重写toString() 方法,用来简单易懂地描述该类的信息,若不重写,返回的则是该类对象的内存地址。

	System.out.println(char1.toString());    //返回char1对象的内存地址,[C@......
	System.out.println(object.toString());    //object为空,抛出NullPointerException异常,对比起来,valueOf对空对象的处理好像更安全
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值