目录
一、获取指定索引的字符
二、 获取指定字符或者字符串的索引位置
三、判断字符串是否以指定内容开头或结尾
四、替换指定的字符或者是字符串
五、获取字符串的子串
六、将字符串转换为字符数组
七、比较字符串的内容是否相等
八、连接字符串
九、比较两个字符串的大小
一、获取指定索引的字符
charAt(int index)该方法接受一个参数,就是指定的索引,返回指定索引位置的字符,返回值是字符型。
public static void main(String[] args) { String s="abcdef"; System.out.println(s.charAt(1)); }
二、 获取指定字符或者字符串的索引位置
indexOf(char ch)该方法接受一个参数,是字符类型,返回值是int型,表示指定字符第一次出现在字符串中的位置,没有找到就返回-1,注意是第一次!
indexOf(char ch,int fromIndex)表示的是从fromIndex索引开始,上面的是表示从索引0开始。
indexOf(String s)该方法接受一个参数,是字符串类型,返回值是String类型,表示指定字符串第一次出现在字符串中的索引位置,没有找到返回-1,注意是第一次出现!
indexOf(String s,int fromIndex)从fromIndex索引开始。
public static void main(String[] args) { String s="abcdbefbef"; System.out.println(s.indexOf('b',3)); System.out.println(s.indexOf('b')); System.out.println(s.indexOf("bef")); System.out.println(s.indexOf("bef",6)); }
三、判断字符串是否以指定内容开头或结尾
startsWith(String s)判断字符串是否以指定内容开头,是的话返回true,否的话返回false。
endsWith(String s)判断字符串是否以指定内容结尾,是的话返回true,否的话返回false。
public static void main(String[] args) { String s="abcdbefbef"; System.out.println(s.startsWith("abc")); System.out.println(s.startsWith("bc")); System.out.println(s.endsWith("ef")); System.out.println(s.endsWith("cef")); }
四、替换指定的字符或者是字符串
replace(char oldchar,char newchar)第一个参数是被替换的,第二个参数是用来替换的,虽然参考上是字符型,但是字符型和字符串String型都是可以的,它是表示满足条件的全都替换,而不是只是一个!
replaceAll(String regex,String newchar)看字面意思它和replace方法一个是替换单个匹配项,一个是全都替换,但不是这样的!他们都是替换匹配所有项,只不过replaceAll它的接收参数是正则表达式而已。
要特别主要的是,这两个方法的使用不会改变原来的字符串,他们只是创建了一个新的字符串!!!
public static void main(String[] args) { String s="abcdab1a2"; System.out.println(s.replace('a','1')); System.out.println(s.replace("b","1")); System.out.println(s.replaceAll("\\w","9")); System.out.println(s); }
五、获取字符串的子串
substring(int begin)接受一个参数表示开始的索引位置,一直到末尾,截取的子串
substring(int begin,int end)截取的子串是[begin,end),从begin开始,到end结束,但是不包括end截取的子串。
注意两者都不改变原来的字符串!
public static void main(String[] args) { String s="012345"; System.out.println(s.substring(2)); System.out.println(s.substring(2,4)); System.out.println(s); }
六、将字符串转换为字符数组
toCharArray()将指定的字符串转换为字符数组。
public static void main(String[] args) { String s="012345"; char[] c=s.toCharArray(); for(char cc:c){ System.out.println(cc); } System.out.println(s); }
七、比较字符串的内容是否相等
equals(String s)比较两个字符串的内容是否相等,原本equals比较的是地址,只不过String重写了equals方法,所以比较的是字符串的内容
equalsIgnoreCase()忽略大小写比较字符串的内容是否相等。
public static void main(String[] args) { String s1="abc",s2="ABC"; System.out.println(s1.equals(s2)); System.out.println(s1.equalsIgnoreCase(s2)); }
八、连接字符串
concat(String s)连接字符串,参数中的字符串连接在后面。
public static void main(String[] args) { String s1="abc",s2="ABC"; System.out.println(s1.concat(s2)); System.out.println(s2.concat(s1)); }
九、比较两个字符串的大小
compareTo()方法,参数接受一个字符串 比较大小的规则其实就是按照ASCII的大小比较的 两个字符串,出现的第一个两个字符不同的,返回他们的ASCII值的 如果他们的字符都一样的话,返回的就是他们的长度差 由此可知,两个字符串相等的话,返回的就是0 如s1.compareTo(s2) 比较的话,是s1-s2的哦,谁调用,谁就减!!!
public static void main(String[] args) { String s1="abc",s2="abd",s3="abcde",s4="abc"; System.out.println(s1.compareTo(s2)); System.out.println(s2.compareTo(s1)); System.out.println(s1.compareTo(s3)); System.out.println(s3.compareTo(s1)); System.out.println(s1.compareTo(s4)); }