String类的一些常用方法 字符串是最常用的对象,所以,我们有必要彻底的了解下它,下面我会列举常用的字符串里的方法,因为有很多,就不一一列举。 (1)public int length() 返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。
public static void main(String[] args) { // String 中的常用方法介绍 /* * int length() 返回此字符串的长度。 */ String s = "abcde"; System.out.println(s.length()); }
控制台输出:6
这个方法很简单:就是给你返回这个字符串的长度
(2)public boolean equals(Object anObject) 将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 public static void main(String[] args) { // String 中的常用方法介绍 /* * public boolean equals(Object anObject) * 将此字符串与指定的对象比较。当且仅当该参数不为 null, * 并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 * 注:区分大小写 */ //1.示例 String s1 = "abc"; String s2 = "abc"; System.out.println(s1.equals(s2));//true String s3 = "abc"; String s4 = "abd"; System.out.println(s3.equals(s4));//false //equals 与 ==的区别 String s5 = "abc"; String s6 = "abc"; System.out.println(s5==s6);//true String s7 = "abc"; String s8 = new String("abc"); String s9 = new String("ABC"); /* * 区别: ==:比较的是两个字条串的引用地址是否一致(明显s7和s8的引用地址不同) * equals:较的两个字符串是否一样(明显s7和s8的字符串是一样的) * 注意:equals是区分大小写(参考s7.equals(s9) * 实际上基本所有情况都是用equals */ System.out.println(s7==s8);//false System.out.println(s7.equals(s8));//true System.out.println(s7.equals(s9));//false }
(3)public boolean equalsIgnoreCase(String str)::比较字符串的内容是否相同,忽略大小写 public static void main(String[] args) { // String 中的常用方法介绍 /* * boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 * 举个常用的应用场景:校验你输入的验证码和你输入的是否一致 */ String s1 = "abc"; String s2 = "ABC"; System.out.println(s1.equalsIgnoreCase(s2));//true }
(4)boolean contains(String str):判断大字符串中是否包含小字符串(有点像数学里面的包含) public static void main(String[] args) { // String 中的常用方法介绍 /* * boolean contains(String str):判断大字符串中是否包含小字符串(有点像数学里面的包含) */ String s1 = "StringDemo"; /* * 判断StringDemo 是 否包含 * Demo:包含 所以返回的是true * demo:不包含 所以返回的是false * */ System.out.println(s1.contains("demo"));//false System.out.println(s1.contains("Demo"));//true /* * 如果想忽略大小写是否包含,可以这样写 * toLowerCase():将此 String 中的所有字符都转换为小写 * toUpperCase():将此 String 中的所有字符都转换为大写 * 后面再详讲 */ System.out.println(s1.toLowerCase().contains("demo".toLowerCase()));//true System.out.println(s1.toUpperCase().contains("demo".toUpperCase()));//true
}
(5)boolean startsWith(String str):判断字符串是否以某个指定 boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
public static void main(String[] args) { // String 中的常用方法介绍 /* * boolean startsWith(String str):判断字符串是否以某个指定的字符串开头 * boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾 */ String s1 = "If you never abandon,I will in life and death"; //startsWith(String str) System.out.println(s1.startsWith("If"));//true System.out.println(s1.startsWith("If you"));//true System.out.println(s1.startsWith("you"));//false //endsWithString str) System.out.println(s1.endsWith("th"));//true System.out.println(s1.endsWith("death"));//true System.out.println(s1.endsWith("deat"));//false }
(6)boolean isEmpty():判断字符串是否为空 public static void main(String[] args) { // String 中的常用方法介绍 /* * boolean isEmpty():判断字符串是否为空 */ String s1 = ""; String s2 = " "; String s3 = null; System.out.println(s1.isEmpty());//true System.out.println(s2.isEmpty());//false 不去除空格,可用trim()方法去除左右空格 /* * 注:这个会抛空指针异常java.lang.NullPointerException * 因为s3对象都不存在,所以不能调用方法 * 通常不知道字符串是否为null时,以想判断这个字符串是否为空, * 写法是这样的:if(s3==null||s3.trim().isEmpty()) */ System.out.println(s3.isEmpty()); }
(7)char charAt(int index):获取指定索引位置的字符 public static void main(String[] args) { // String 中的常用方法介绍 /* * char charAt(int index):获取指定索引位置的字符 */ String s1 = "If you never abandon,I will in life and death"; /* * 这个方法索引是从0开始找 * If you never abandon,I will in life and death * 0123456789 ... .... 44 * 它的一个位置大概就是这样 */ System.out.println(s1.charAt(0));//输出 :I System.out.println(s1.charAt(2));//输出 :空格 System.out.println(s1.charAt(3));//输出 :y } }
(7)int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。 int indexOf(int ch,int fromIndex): 返回指定字符在此字符串中从指定位置后第一次出现处的索引。 int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。 int lastIndexOf(int ch, int fromIndex) 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。 int lastIndexOf(String str, int fromIndex) 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 String substring(int start): 从指定位置开始截取字符串,默认到末尾。 String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。
public static void main(String[] args) { // String 中的常用方法介绍 /* * int indexOf(int ch): * 返回指定字符在此字符串中第一次出现处的索引。 * int indexOf(int ch,int fromIndex): * 返回指定字符在此字符串中从指定位置后第一次出现处的索引。 * int indexOf(String str,int fromIndex): * 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。 * int lastIndexOf(int ch, int fromIndex) * 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 * int lastIndexOf(String str) * 返回指定子字符串在此字符串中最右边出现处的索引。 * int lastIndexOf(String str, int fromIndex) * 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 * String substring(int start): * 从指定位置开始截取字符串,默认到末尾。 * String substring(int start,int end): * 从指定位置开始到指定位置结束截取字符串。 */ String s1 = "If you never abandon,I will in life and death"; /* * int indexOf(int ch): * 返回指定字符在此字符串中第一次出现处的索引。 * If you never abandon,I will in life and death * 0123456789 ... .... 44 */ //注意:若检索不到返回的是-1 System.out.println(s1.indexOf("your"));//输出的结果是:-1 //从左到右,还是以0开始数 ,返回第一个出现n这个字母的位置,很明显是第7个 System.out.println(s1.indexOf("n"));//输出的结果是:7 //从左到右,还是以0开始数 ,返回第一个出现never这个单词的位置,所以返回的是这个单词首个字母的位置 System.out.println(s1.indexOf("never"));//输出的结果是:7 //从左到右,还是以0开始数 ,返回第一个出现e这个字母的位置,认真看一下,never有两个e,但很明显返回的是第一次出现的那个,很明显是第8个 System.out.println(s1.indexOf("e"));//输出的结果是:8 //从左到右,还是以0开始数 ,返回第一个出现er这个单词的位置,认真看一下,never有两个e,但要检索的是er这个单词,所以查找的是后面的那个e,很明显是第10个 System.out.println(s1.indexOf("er"));//输出的结果是:10 /* * int indexOf(int ch,int fromIndex): * 返回指定字符在此字符串中从指定位置后第一次出现处的索引。 */ /* * 对比上面的:System.out.println(s1.indexOf("e"));//输出的结果是:8 * 你会发现:下面的这个程序是从第9个位置开始检索,所以找的是第二个e * */ System.out.println(s1.indexOf("e",9));//输出的结果是:10 //注意:若检索不到返回的是-1 System.out.println(s1.indexOf("your",9));//输出的结果是:-1 /* * indexOf(int ch,int fromIndex): * //注意:若检索不到返回的是-1 */ System.out.println(s1.indexOf('e',9));//输出的结果是:10 /* * 先写这么多,迟点再更新
本人写得比较匆忙,再加上自己水平有限,可能会有不少的错误,欢迎各位指正 */ }
|