1. equals(判断字符串是否相等)
1.直接赋值:开辟一块堆内存空间,且该字符串对象可以自动保存在对象池 中以供下次使用。
2.构造方法:会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用intern()方法手工入池。
string str = new string(“hello”)
1.1区分大小写
1.//判断字符串是否相等,自己实现
public static void main(String[] args) {
String str1 = "HelloWord";
String str2 = "HelloWord";
System.out.println(isEqueals(str1,str2));
}
private static boolean isEqueals(String str1, String str2) {
char[] arr1 = str1.toCharArray(); //将字符串转成字符数组
char[] arr2 = str2.toCharArray(); //将字符串转成字符数组
while(arr1.length == arr2.length) {
for(int i = 0; i <= arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
return false;
}
2.判断字符串是否相等String类自带类 equals
public static void main(String[] args) {
String str1 = "helloword";
String str2 = "HelloWord";
System.out.println(str1.equals(str2));
}
1.2不区分大小写
public static void main(String[] args) {
String str1 = "HelloWord";
String str2 = "helloWord";
System.out.println(str1.equalsIgnoreCase(str2));
}
2. compareTo(比较字符串大小)
2.1.自己实现
public static int myCompareTo (String str1,String str2) {
if(str1 == null && str2 == null) {
return -100;
}
char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
for (int i = 0; i < arr1.length && i < arr2.length; i++) {
if(arr1[i] < arr2[i]){
return -1;
} else if (arr1[i] <arr2[i]) {
return 1;
} else {
return 0;
}
}
return 0;
}
public static void main(String[] args) {
String str1 = "helloword";
String str2 = "halloword";
System.out.println(myCompareTo(str1,str2));
}
2.2String类自带compareTo实现
public static void main(String[] args) {
String str1 = "helloword";
String str2 = "halloword";
System.out.println(str1.compareTo(str2));
}
在自己实现的比较类中,遇到空,返回-100,而在String类自己带的compareTo里,遇到空字符会抛出异常。
3. toCharArray(字符串转换为字符数组)
char[] arr1 = str1.toCharArray(); //将字符串转成字符数组
char[] arr2 = str2.toCharArray();
4. contains(字符串查找)
判断一个子字符串是否存在,contains() ,存在返回 true ,不存在返回false
![ public static void main(String[] args) {
String str1 = "you are dog";
String str2 = "I";
String str3 = "dog";
System.out.println(str1.contains(str2));
System.out.println(str1.contains(str3));
}](https://img-blog.csdnimg.cn/2019111822084165.png)
5. indexOf
indexOf(String str,int fromIndex) 存在返回该子字符串的首元素的索引,不存在返回-1
第一个参数为子字符串,第二个参数为开始检索的位置
public static void main(String[] args) {
String str1 = "you are dog";
String str2 = "I";
String str3 = "dog";
System.out.println(str1.indexOf(str2));
System.out.println(str1.indexOf(str3));
}
6. lastIndexOf
如果lastIndexOf 方法中的参数是空字符“ ”,中间没有空格,返回的结果与调研该字符串的length方法的返回结果相同。
public static void main(String[] args) {
String str1 = "you are dog";
System.out.println(str1.lastIndexOf(""));
}
7. replaceAll
replaceAll(String regex,String replacement) 将regex全部替换掉
public static void main(String[] args) {
String str1 = "you-are-dog";
System.out.println(str1.replaceAll("-"," "));
}
8. replaceFirst
replaceFirst(String regex,String replacement) 只替换掉第一个出现的regex
public static void main(String[] args) {
String str1 = "you-are-dog";
System.out.println(str1.replaceFirst("-"," "));
}
9. split(字符串拆分)
split(String regex) regex正则表达式 在这里可以理解为,按照哪个字符进行拆分
public static void main(String[] args) {
String str1 = "name = you & property = dog";
String[] rel = str1.split("&");
for(int i = 0; i < rel.length; i++) {
String[] temp = rel[i].split("=");
System.out.println(temp[0] +":" +temp[1]);
}
}
split(String regex,int limit) 第二个参数表示,将字符串最多拆分为几部分
public static void main(String[] args) {
String str1 = "name you property dog";
String[] rel = str1.split(" ",3);
for(String x:rel){
System.out.println(x);
}
}
10. subString
substring(int begainIndex) 从指定的位置开始截取至最后一个元素
public static void main(String[] args) {
String str1 = "name you property dog";
System.out.println(str1.substring(9));
}
substring(int begainIndex,int endIndex) 截取指定区间的字符串(前闭后开区间)
public static void main(String[] args) {
String str1 = "name you property dog";
// System.out.println(str1.substring(9));
System.out.println(str1.substring(9,17));
}
11. trim(删除字符串两端的空格)
public static void main(String[] args) {
String str1 = " name you property dog ";
System.out.print("[" + str1 +"]");
System.out.println();
System.out.println("[" + str1.trim() + "]");
}
12. isEmpty(判空)
public static void main(String[] args) {
String str1 = " ";
System.out.println(str1.isEmpty());
String str2 = "";
System.out.println(str2.isEmpty());
String str3 = "null";
System.out.println(str3.isEmpty());
}
13. length(字符串长度)
public static void main(String[] args) {
String str1 = "you are dog";
System.out.println(str1.length());
}