String字符串常量
package com.qfedu.b_String;
/*
* 字符串比较问题
* */
public class Demo1 {
public static void main(String[] args) {
String str1 = "lqq";
String str2 = "lqq";
String str3 = new String("lqq");
String str4 = new String(str1);
System.out.println("str1 == str2"+(str1 == str2));
System.out.println("str2 == str3"+(str2 == str3));
System.out.println("str3 == str4"+(str3 == str4));
System.out.println("str1 == str4"+(str1 == str4));
//String str1 = "lqq";这样是创建了一个字符串常量,存储在内存中的数据区,
//在内存中所有用到这个字符串的地方都是获取的这个字符串常量的地址
//String str3 = new String("lqq");直接从数据区获取字符串常量的地址然后再将字符 串的地址赋值给新创建的字符串对象(会进行两次对象创建)
//无论啥时候字符串比较都是用equals方法
System.out.println("str1.equals(str2) : " + str1.equals(str2));
System.out.println("str1.equals(str4) : " + str1.equals(str4));
System.out.println("str2.equals(str3) : " + str2.equals(str3));
System.out.println("str3.equals(str4) : " + str3.equals(str4));
}
}
注意:无论什么时候两个字符串比较内容是否相等,我们一定要有equals方法,因为如果用的是来比较,会比较两个字符串的地址。一般只有boolean类型的数据用来进行比较
String获取方法
获取字符串长度方法:int length();返回的int类型的数据,字符串长度
获取某字符第一次出现的下标:int indexOf(char ch);
获取某字符串第一次出现的下标:int indexOf(String str);
获取某字符下标位置,从指定下标位置开始: int indexOf(char ch,int fromIndex);
获取某字符串第一次出现的下标,从指定下标位置开始:int indexOf(String str , int fromIndex);
获取某字符最后一次出现的下标位置:int lastIndexOf(char ch);
获取某字符串最后一次出现的下标:int lastIndexOf(String str);
获取某字符下标位置,从指定下标位置开始: int lastIndexOf(char ch,int fromIndex);
获取某字符串第一次出现的下标,从指定下标位置开始:intlastIndexOf(String str , int fromIndex);
获取字符串指定下标的字符 char charAt(int index);
判断方法(返回值数据类型都是boolean)
boolean isEmpty();判断字符串是否为空
boolean contains(String str);判断str字符串是否属于源字符串
boolean equals(Object obj);判断对象与字符串与对象的内容是否相同
boolean equalsIgnoreCase(String str);判断两个字符串内容是否相同,不区分大小写
boolean endsWith(String str);判断字符出啊时否以str字符串结尾
转换方法
String(char[] arr);将字符数组转换成字符串
String(char[] arr, int offset, int length);
String(char[] arr, int off, int len);
String(char[] arr, int off, int cou);
String(char[] arg0, int arg1, int arg2);
使用字符数组中内容创建一个字符串对象,offset是从char类型数组中指定下标位置开始获取数据,获取的数据长度是length
char[] toCharArray();返回当前字符串对应的字符串数组
static String valueOf(char[] arr);静态方法通过类名调用实现String(char[] arr)方法
static String valueOf(char[] arr, int offset, int length);
通过类名调用的静态方法,实际执行的是String(char[] arr, int offset, int length);
其他方法
String replace(char oldChar,char newChar)
替换不会修改原始字符串,只会创建一个新字符串返回,新字符串换上被替换的字符,源字符串不变
package com.qfedu.b_String;
public class Demo5 {
public static void main(String[] args) {
String str = "123555";
System.out.println(str.replace('1', '*'));
System.out.println(str);
}
}
String[] split(String regex)
按照指定的字符串切割当前字符串数组,regex是分割的位置变成,
String substring(int beginIndex)
从指定位置开始,截取子字符串,到字符串末尾
String substring(int beginIndex, int endIndex)
从指定位置开始beginIndex,到endIndex结束,要头不要尾
String toUpperCase() 转大写
字符串小写转大写
String toLowerCase() 转小写
字符串大写转小写
String trim() 去除空格
去除字符串两边的无用空格