文章目录
关于String中的常用方法
charAt
- 作用:查找字符串中下标为index的字符,返回一个字符。
- 方法:public char charAt(int index)。
public static void main(String[] args) {
String str = "abcdef";
char ch = str.charAt(2);
System.out.println(ch);//输出:c
}
compareTo & compareToIgnoreCase
compareTo
- 作用:按照字典序比较两个字符串大小。
- 方法:int compareTo(String anotherString) 。
compareToIgnoreCase
- 作用:按字典顺序比较两个字符串,忽略大小写差异。
- 方法:int compareToIgnoreCase(String str) 。
public static void main(String[] args) {
String str1 = "abcdef";
int ret1 = str1.compareTo("abcee");
System.out.println(ret1);//输出-1
int ret2 = str1.compareToIgnoreCase("AbcDe");
System.out.println(ret2);//输出1
}
关于返回值:
- 返回0表示两个字符串的值相同。
- 如果不相同,返回两个字符串 的 第一位不相同字符 的 ASCII之差。
- 如果是包含关系的话,返回长度之差。
contains
- 作用:判断调用该方法的字符串是否包含后面的子字符串s。
- 方法:boolean contains(CharSequence s)
public static void main(String[] args) {
String str = "abcdef";
boolean bool1 = str.contains("abc");
boolean bool2 = str.contains("aaa");
System.out.println(bool1);//输出true
System.out.println(bool2);//输出false
}
equals & equalsIgnoreCase
- 作用:将此字符串与指定对象进行比较。
- 方法:boolean equals(Object anObject) ;
- 区别:equalsIgnoreCase比较忽略大小写
public static void main(String[] args) {
String str = "abcdef";
boolean bool1 = str.equals("abcdef");
boolean bool2 = str.equals("aaa");
System.out.println(bool1);//输出true
System.out.println(bool2);//输出false
String str2 = "abcdef";
boolean bool3 = str.equalsIgnoreCase("Abcdef");
System.out.println(bool3);//输出true
}
注意:比较两个字符串内容是否相等使用“==”是在比较引用对象存储的地址。
indexOf
indexOf
- 作用:返回某个子字符串在当前字符串中第一次出现的下标,没有就返回-1。
- 方法:int indexOf(String str)
lastIndexOf - 作用:返回某个子字符串在当前字符串中最后一次出现的下标,没有就返回-1。
- 方法:int lastIndexOf(String str)
public static void main(String[] args) {
String str = "abcdef";
int ret = str.indexOf("cdef");
System.out.println(ret);//输出2
int ret2 = str.lastIndexOf("cde");
System.out.println(ret2);//输出2
}
isEmpty
- 作用:判断某个字符串是否为空字符串,已经实例化了,也就是字符串的长度是否为0。
- 方法:boolean isEmpty()
public static void main(String[] args) {
String str1 = "abcdef";
boolean bool1 = str1.isEmpty();
String str2 = "";
boolean bool2 = str2.isEmpty();
System.out.println(bool1);//输出false
System.out.println(bool2);//输出true
}
length
- 作用:求此字符串的长度。
- 方法:int length()
public static void main(String[] args) {
String str = "abcdef";
System.out.println(str.length());//输出6
}
注意与属性的length区分,求字符串长度要加(),数组则不用!
replace & replaceFrist
replace
- 作用:将当前字符串当中的所有target字符换成replacement字符。
- 方法:public String replace(CharSequence target, CharSequence replacement)
replaceFrist
- 作用:将当前字符串当中的第一个target字符串换成replacement字符串。
- 方法:String replaceFirst(String regex, String replacement)
public static void main(String[] args) {
String str1 = "Hi do you like learning English?";
String str2 = str1.replace(' ','/');
System.out.println(str2);//输出Hi/do/you/like/learning/English?
String str3 = str1.replaceFirst(" ",",");
System.out.println(str3);//输出Hi,do you like learning English?
String str4 = str1.replaceAll(" ","//");//替换字符串,类似replace替换字符!
System.out.println(str4);//输出Hi//do//you//like//learning//English?
}
split
- 作用:将当前字符串以regex字符串隔开,隔开后的片段以String[]形式返回。
- 方法:String[] split(String regex)
public static void main(String[] args) {
String str1 = "Hi do you like learning English?";
String[] str2 = str1.split(" ");
for (String x:str2) {
System.out.println(x);/*输出 Hi
do
you
like
learning
English?*/
}
}
substring
- 作用:在当前字符串中,从beginIndex开始截取,截取到endIndex的新字符串,返回新字符串。
- 方法:String substring(int beginIndex, int endIndex)
public static void main(String[] args) {
String str1 = "abcdef";
String str2 = str1.substring(1,3);
System.out.println(str2);//输出bc
}
toCharArray
- 作用:将此字符串转换为新的字符数组。
- 方法:char[] toCharArray()
- 注意:左闭右开
public static void main(String[] args) {
String str1 = "abcdef";
char[] str2 = str1.toCharArray();
for (char ch:str2) {
System.out.print(ch+" ");//输出a b c d e f
}
}
toUpperCase & toLowerCase
toUpperCase
- 作用:将字符串全都转换成大写字母。
- 方法:public String toUpperCase()
toLowerCase - 作用:将字符串全都转换成小写字母。
- 方法:public String toLowerCase()
public static void main(String[] args) {
String str1 = "abcdef";
String str2 = str1.toUpperCase();
System.out.println(str2);//输出ABCDEF
String str3 = str2.toLowerCase();
System.out.println(str3);//输出abcdef
}
trim
- 作用:去除字符串前后的空格。
- 方法:String trim()
public static void main(String[] args) {
String str1 = " Hi do you like learning English? ";
String str2 = str1.trim();
System.out.println(str1);//输出 Hi do you like learning English?
System.out.println(str2);//输出Hi do you like learning English?
}
format
- 作用:使用指定的格式字符串和参数返回格式化的字符串。
- 方法:static String format(String format, Object… args)
public static void main(String[] args) {
String s = String.format("%d-%d-%d", 2019, 9,14);
System.out.println(s);//输出2019-9-14
}
valueOf
- 作用:返回 Object参数的字符串 Object形式。
- 方法:static String valueOf(Object obj)
class Student {
int id;
String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
//重写toStrong便于我们打印
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
public class text2 {
public static void main(String[] args) {
Student student = new Student(10,"zhangsan");
String str = String.valueOf(student);
System.out.println(str);//输出Student{id=10, name='zhangsan'}
}
}
拓展:StringBuilder
使用StringBuilder需要导入包:import java.lang.StringBuilder;
reverse
- 作用:逆置当前字符串
- 方法:StringBuilder reverse()
public static void main(String[] args) {
StringBuilder strbu1 = new StringBuilder("abcdef");
strbu1.reverse();
System.out.println(strbu1);//输出fedcba
}
append
- 作用:将 char参数的字符串表示附加到此序列。
- 方法:StringBuilder append(char c)
public static void main(String[] args) {
StringBuilder strbu1 = new StringBuilder("abcdef");
strbu1.append('g');
System.out.println(strbu1);//输出abcdefg
}