String常用方法简介
创建String对象的方法:
String s1="imooc";
等同于
String s3=new String("imooc");
都是创建了一个字符串对象imooc
String常用方法(上)
1.求字符串长度:
str.length();
取出位置在6的字符;字符串中的字符从0开始数,也就是第7个字符
str.charAt(6);
取出子串,即字符串位置5及位置5以后的字符串
str.substring(5);
取出子串,即字符串位置5(包括位置5)及位置7之前的字符串(不包括位置7)
str.substring(5,7)
String常用方法(下)
查找字符'A'在字符串中第一次出现的位置
str.indexOf('A');
查找子串“编程”在字符串中第一次出现的位置
str.indexOf("编程");
字符'A'在字符串中最后一次出现的位置
str.lastIndexOf('A');
查找子串“编程”在字符串中最后一次出现的位置(其实是“编”最后一次出现的位置)
str.lastIndexOf("编程");
在字符串index值为8的位置开始,查找子串“编程”第一次出现的位置是16
str.indexOf("编程",8)
编程练习1
使用String类常用方法完成字符串处理。
任务
1、 定义一个字符串"abcdefg"
2、 取出子串cde并转换为大写
3、 将DE替换为MM
4、 最后得到结果CMM
package me.feihong.string;
public class StringOne {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str=new String("abcdefg");
String str1=str.substring(2, 5);
String str2=str1.toUpperCase();
String str3=str2.replace("DE", "MM");
System.out.println(str3);
}
}
字符串与byte数组间的相互转换
字符串与byte数组之间的相互转换-----用的是utf-8编码
那么将相应的byte数组转换为字符串时---它所用的编码也应该为utf-8,要保持编码的一致
等于运算符与equals方法的区别
str1.euqals(str2) //指的是str1与str2的内容是否相同(
(str1==str2)//指的是str1与str2的地址是否相同
常量池与堆
字符串的不可变性
不可变性:String对象一旦被创建不能更改,是不可变得
通过“=”改变的只是引用位置,对象的值还是未改变的
通过方法得出的子串,新的字符....都是存放在常量池中,而并不是覆盖了对象的值
StringBuilder概述
String和StringBuilder的区别
1.建议:当频繁操作字符串时,使用StringBuilder
- StringBuilder和StringBuffer
二者基本相似
StringBuffer是线程安全的,StringBuilder则没有,所以性能略高
StringBuilder常用方法
StringBuider
1.不具备不可变性,当频繁操作字符串时,使用StringBuider
2.StringBuilder(性能略高)和StringBuffer(线程安全)二者基本相似
3.StringBuilder str=new StringBuilder("你好");
System.out.println("str="+str.append(',').append(“imooc!”));
4.使用str.delete()方法删除,然后使用str.insert()方法插入
5.使用replace方法直接替换 : str.replace(4,8,"MOOC");
编程练习2
定义一个字符串,利用StringBuilder完成如下效果。
效果图:
任务
- 定义一个字符串”欢迎来到“
- 在"欢迎来到"后面添加内容,将字符串变成"欢迎来到imooc"
- 使用delete方法删除"欢迎来到",然后插入“你好!”
- 将字符串变成“你好,imooc”
- 使用replace方法替换
package me.feihong.string;
public class StringBuilderDemo {
public static void main(String[] args) {
//定义一个字符串"欢迎来到"
StringBuilder str=new StringBuilder("欢迎来到");
//在"欢迎来到"后面添加内容,将字符串变成"欢迎来到imooc"
System.out.println(str.insert(4, "imooc"));
//使用delete方法删除"欢迎来到",然后插入“你好!”
System.out.println("删除插入后:"+str.delete(0, 4).insert(0, "你好,"));
//将字符串变成“你好,imooc”
System.out.println("替换后:"+str.replace(0, 3, "欢迎来到"));
//使用replace方法替换
}
}
编程练习3
定义一个字符串,使用StringBuilder的常用方法对字符串进行操作。
任务
1、 定义字符串"abc"
2、 使之经过处理得到字符串"fed---cba",并进一步得到字符串"fedcba"
package me.feihong.string;
public class StringBuilderDemo {
public static void main(String[] args) {
//定义字符串"abc"
StringBuilder str=new StringBuilder("abc");
//经过处理得到字符串"fed---cba"
System.out.println(str.append("def").reverse().insert(3, "---"));
//进一步变换得到字符串"fedcba"
System.out.println(str.delete(3, 6));
}
}