java字符串就是Unicode字符序列,例如"Java"就是四个Unicode字符
java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String。每个用双引号括起来的字符串都是String类的一个实例。
Java允许使用符号"+"把两个字符串链接起来。
String s1="Hello";String s2="World"; String s=s1+s2;"HelloWorld"
符号“+”把两个字符串an给定的顺序连接在一起,并且完全按照给定的形式。
当"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串在进行连接。
int age=18; String s="age"+age;// age18
字符串的常用类型:
char charAt(int index):返回字符串中第index个字符。
boolean equals(String other):如果字符串和other相等,就返回true
boolean equalsIgnoreCase(String other):如果字符串与other相等(忽略大小写),则返回true
int indexOf(String str)
int indexOf(String str,int fronIndx):返回与str匹配的第一个字符串开始的位置,该位置从0或fronIndx计算,如果原始串中不存在str,返回-1。
int length():返回字符串的长度
String replace(char oldChar,char newChar):返回一个新串,它是通过newChar替换此字符串中出现的所有oldChar而生成的
boolean rtartsWith(String prefis):如果字符串以prefis结尾,就返回true
String substring(int beginIndex)
String substring(int beginIndex,int endIndex):返回一个新的字符串,该串包含从原始字符串beginIndex到串尾endIndex-1的所有字符串
String toLowerCase():返回一个新的字符串中所有大写字母改写成小写字母
String toUpperCase():返回一个新的字符串,该串原始字符串中的所有小写改成大写
String trim():返回一个新的字符串,该串删除了原始字符串头部和尾部的空格
字符串相等的判断
equals方法用来检测两个字符串内容是否相等,相等返回true,否则false
内容可以是字符串变量,也可以是字符串常数。例如"Hello".equals(t)
要测试两个字符串除了大小写是否相等的,需要使用equalsIgnoreCase方法:"Hello".equalsIgnoreCase("hello")
判断字符串是否相等使用“==”
String g1="Hello World!";
String g2="Hello World!";
boolean b1=g1.equals(g2);
System.out.println(" g1.equals(g2) 是否相等:" + (b1 ? "相等" : "不相等") );
boolean b2=(g1==g2);
System.out.println(" g1==g2 是否相等:" + (b2 ? "相等" : "不相等") );
System.out.println("=========================================");
String s1=new String("Hello World!");
String s2=new String("Hello World!");
boolean b3=s1.equals(s2);
System.out.println(" s1.equals(s2) 是否相等:" + (b3 ? "相等" : "不相等") );
boolean b4=(s1==s2);
System.out.println(" s1==s2 是否相等:" + (b4 ? "相等" : "不相等"));
}
}
/**
* g1.equals(g2) 是否相等:相等
* g1==g2 是否相等:相等
*======================================
* s1.equals(s2) 是否相等:相等
* s1==s2 是否相等:不相等
==和equals的区别和联系
==:
a)基本类型,比较的是值
b)引用类型,比较的是地址
c)不能比较没有父子关系的两个对象
equals()
a)系统类一般已经涵盖的equals比较的是内容
b)用户自定义类如果没有覆盖equals(),将调用父类的equals()
c)用户自定义类需要覆盖父类的equals()
Objest比较的==和equals都是地址