1. == 和 equals 方法的区别
"=="比较的是引用(是否指向同一个内存块),“equals”比较的是具体的内容
String name1="张三" //直接赋值方式
String name2=new String("张三"); //new对象方式
String name3=name2 ; //传递引用
name1==name2 false
name1==name3 false
name2==name3 true
name1.equals(name2) true
name1.equals(name3) true
name2.equals(name3) true
2.String 两种实列化方式区别
直接赋值方式:创建的对象放在字符串对象池里,如果存在就不创建
new对象方式:每次都创建新的对象
3.字符串特性:
不能改变字符串的内容,要想改变,只能通过指向一个新的内存地址
4.String常见的方法:
4.1 charAt :返回指定索引处的char值,索引范围为0-----length()-1
String name="张三"
char ming =name.charAt(1)
4.2 length():返回字符串的长度
4.3 indexof:返回指定字符串在此字符串中第一次出现的处的索引
String str="sadasd";
str.indexof("d");
4.4 substring(int beginIndex int endIndex)
返回一个新字符串,该字符串从指定的beginIndex处开始,直达索引endIndex -1处的字符,其长度为endIndex-beginIndex
String str1="不开心每一天,不可能"
str.substring(1,6)
结果:开心每一天
4.5 toUpperCase() :全变成大写
tolowercase(): 全变成小写
4.6 Trim():去掉字符串前后空格
4.7 问题 题统计newStr中出现的英文字符 空格 其他的个数
String str ="asdaf ddcxzcsd2312”
int kongge=0
int yingwen=0
int qita=0;
for(int i=0; i<newStr.length();i++){
char c=newStr.charAt(i);
if(( c>= ‘a’&&c<'z‘)||( c>= ‘A’&&c<'Z‘)
{ yingwen++
} else if(c== ‘’ ”){
kongge++
} else{
qita++
}
}