java学习之字符串
2016-11-20 本文已影响33人
ivanZz
java学习之字符串
- 字符串的比较
public class Stringdome {
public static void main(String[] args) {
String str ="hello";
String str1= new String ("hello");
System.out.println(str==st1);
}
}
public class Stringdome {
public static void main(String[] args) {
String str ="hello";
String str1= new String ("hello");
System.out.println(str.equals(str1));
}
}
这是字符串通过==
和str.equals
比较字符串是否相同
两者的不同点在于前者是比较字符串的地址,而后者是比较字符串的内容
所以前者输出的是false
后者输出的是true
好习惯
开发中尽量用String str="hello";
这类直接赋值的语句,不要用String str1=new String("hello");
这类重新开辟空间的赋值语句
- 字符串内容不可更改
public static void main(String[] args) {
String str ="hello";
str=str+"World";
System.out.println(str);
}
虽然输出的结果是helloWorld
但是内存地址已经改变了
-
字符串常用的方法
- 字符串长度:
length()
- 字符串转换数组:
toCharArray()
- 从字符串中取出指定位置的字符:
charAt()
- 字符串与byte数组的转换:
getByte()
- 过滤字符串中存在的字符:
indeOf()
可用于寻找特殊字符例如:@
敏感文字
等等 - 去掉字符串的前后空格:
trim()
- 从字符串中取出子字符串:
subString()
- 大小写转换:
toLowerCase() toUpperCase()
- 字符串长度:
-
StringBuffer的使用
认识StringBuffer
本身也是操作字符串,但是和String不同,StringBuffer是可更改的,且不需开辟新的内存空间,作为一个操作类,必须要通过实例化操作
public class Stringdome {
public static void main(String[] args) {
StringBuffer sb =new StringBuffer();
sb.append("i love ");
System.out.println(sb.toString());
tell(sb);
System.out.println(sb.toString());
}
public static void tell(StringBuffer s)
{
s.append("jikexueyuan");
}
}
StringBuffer的常用方法
- 尾部追加:
append()
- 插入:
insert()
- 代替:
replace()
- 索引子字符串的第一个字符:
indexOf()
- StringBuilder的使用