int indexOf(int ch) :获取字符在字符串中第一次出现的位置,如果不存在,则返回-1
int indexOf(int ch,int fromIndex): 从fromIndex位置开始查找,查找ch第一次出现的位置
获取位置
int indexOf(int ch) :获取字符在字符串中第一次出现的位置,如果不存在,则返回-1
int indexOf(int ch,int fromIndex): 从fromIndex位置开始查找,查找ch第一次出现的位置
int indexOf(String str): 获取str在字符串中第一次出现的位置
int indexOf(String str,int fromIndex): 从fromIndex位置开始查找,查找str第一次出现的
位置
int lastIndexOf(int ch):获取字符在字符串中最后一次出现的位置,如果不存在,则返回-1
int indexOf(String str): 获取str在字符串中第一次出现的位置
int indexOf(String str,int fromIndex): 从fromIndex位置开始查找,查找str第一次出现的位置
int lastIndexOf(int ch):获取字符在字符串中最后一次出现的位置,如果不存在,则返回-1
boolean contains(CharSequence s): 判断是否包含s字符串
boolean equals(Object obj): 判断两个字符串内容是否相同
public class StringTest {
public static void main (String [] args){
String a = new String("3");//new 出来两个String类型的变量 只要是用“==”比较比较的是引用 那么就是false
String b = new String("3");//
String c = "3";
System.out.println(a==b);
System.out.println("a是不是和c对象指向的同一个空间"+(a==c)+"\n"+"b是不是和c指向的同一个空间"+(b==c));
System.out.println(a.hashCode());//打印出来hashCode()的值那么两个字符串是相同的那么就说明两个字符串值相同指向同一块地址
System.out.println(b.hashCode());
System.out.println(a.equals(b));//equals 比较的是两个引用的值是不是相同的 如果是相同的那么就会输出true
Integer fist = new Integer(1);//注意的是java的常量池中会首先创建-128--127之间的常量如果存在且不是new出来的Integer()对象那么两个Integer类型的对象就相同的
//就像 Integer a = 127; integer b = 127; a==b 是true 但是如果只这样Integer a = 128; integer b = 128; a==b就是false
Integer second = new Integer(1);
System.out.println(fist==second);
}
eg4: String s3=new String("aaa"); //创建几个对象? 两个,一个是在常量池中创建"aaa"的常量对象,new String()在内存中创建一个对象
如果说你这样创建一个对象:
String a = new String("a");
String b = new String("a");
String c = "a"
三个对象都是不相同的 前两个第一个创建了自己的对象 然后在常量池中创建了一个对象,第二个自己创建了一个对象,因为常量池中存在“a”那么就I不会在常量池中创建另一个。但是第三个是创建了个对象“c”指向了常量池中的对象
所以a==b或者b==c或者a==c 都是false