我的Java学习笔记
String类
文章目录
String类,StringBuffer类,StringBuilder类
1.String类
1.1 如何创建String对象
public static void main(String[] args) {
//直接创建并且赋值
String s="1234";
//使用String类构造方法实例化对象
String s2 = new String("1234");
//使用无参构造实例化对象
String s3 = new String();
//把char类型的数组转成对象
char [] cs = {'z','b','c'};
String s4 = new String(cs);
}
1.2 String类中常用的方法
public class StringTest{
public static void main(String[] args){
//trim()
String s=" zs ss ";
String trim = s.trim();
System.out.println(s);
System.out.println(trim);
//总结:trim()去除首位空格,返回去除空格后的字符串
//length()
String s="abcd";
int length = s.length();
System.out.println(length);
//总结:length()获取字符换的长度 返回值类型是int
//indexOf(int ch)
String s="abcd";
int indexOf = s.indexOf(97);
System.out.println(indexOf);
//总结:indexof(int ch) 参数是一个数值,此方法会根据ASCII码表把ch转成字符。在字符串中查找
//该字符串的位置。如果存在返回索引,如果不存在返回-1
//indexOf(String str) 常用
String s="abcd";
int indexOf = s.indexOf("z");
System.out.println(indexOf);
//总结:indexOf(String str) 查找str在字符串中的索引位置,返回结果同上
//indexOf(int ch,int index)
String s="abcd";
int indexOf = s.indexOf(98, 2);
System.out.println(indexOf);
//总结:indexOf(int ch,int index) 从index位置开始查找ch对应字符的位置。返回直接同上
//index(String str,int index)
String s="abcdbcb";
int indexOf = s.indexOf("b", 0);
System.out.println(indexOf);
//总结:indexOf(String str,int index) 从index位置开始查找str对应字符的位置
//isEmpty()
String s="";
boolean empty = s.isEmpty();
System.out.println(empty);
//isEmpty() 判断字符串是否为空。为空返回true 否则返回false
//spilt(String str)
String s="abcabcabc";
String[] split = s.split("b");
for (String string : split) {
System.out.println(string);
}
//spilt(String str) 以str为节点分割整个字符串,返回分割后String类型数组
//subString(int index)
String s="abcabcabc";
String substring = s.substring(5);
System.out.println(substring);
//subString(int index) 以index位置开始截取一直到字符串结束,包括当前索引位置
//subString(int sindex,int eindex)
String s="abcabcabc";
String substring = s.substring(2, 5);
System.out.println(substring);
//subString(int sindex,int eindex) 从sindex截取到eindex。包前不包后
//replace(char oldc,char newc)
String s="abcabcabc";
String replace = s.replace('b', 'x');
System.out.println(replace);
//replace(char oldc,char newc) 用新的字符替换所有旧的字符
//replace(String olds,String news)
String s="abcabcabc";
String replace = s.replace("abc", "x");
System.out.println(replace);
//replace(String olds,String news) 用新的字符串替换所有旧的字符串
//replaceFirst(String olds,String news)
String s="abcabcabc";
String replace = s.replaceFirst("abc", "x");
System.out.println(replace);
//replaceFirst(String olds,String news) 用新的字符串替换第一次出现旧的字符串
//toUpperCase()
String s="abcabcabc";
String replace = s.toUpperCase();
System.out.println(replace);
//总结:toUpperCase() 将字符串中的所有字符全部大写
//toLowerCase()
String s="ABCABCABCA";
String replace = s.toLowerCase();
System.out.println(replace);
//toLowerCase() 将字符串中的所有字符全部小写
//lastIndexOf()
String s="ABCABCABCA";
int i = s.lastIndexOf("B");
System.out.println(i);
//lastIndexOf() 存在四个方法,用法和indexOf()一样 区别是last是从字符串尾部开始查找
//charAt(int index)
String s="ABCABCABCA";
char charAt = s.charAt(2);
System.out.println(charAt);
//charAt(int index) 返回指定索引位置的字符
}
}
2.StringBuffer类
StringBuffer就是一个线程安全,内容可变的字符串。效率是String高。
2.1 实例化StringBuffer对象
public class StringBufferTest {
public static void main(String[] args) {
//实例化StringBuffer对象
//1. 创建一个默认长度的StringBuffer。默认长度为16个字符
StringBuffer sb = new StringBuffer();
//2. 创建一个长度为5的StringBuffer
StringBuffer sb2 = new StringBuffer(5);
//3. 创建一个有值的StringBuffer
StringBuffer sb3 = new StringBuffer("1234");
System.out.println(sb3);
}
}
2.2 StringBuffer中常用的方法
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("1234");
//在StringBuffer中不可以使用+用来拼接
//append(int i) 把int类型的数据追加到sb对象中
sb.append(5);
sb.append("zzz");
System.out.println(sb);
}
//总结 append(obj obj) 把其他类型的数据(基本数据类型,char类型数据,String,StringBuufer)的数据追加到StringBuffer对象后
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("1234");
// 1.对"添加的"进行截取 0,1 代表从0开始截取 截取长度为1
// 2.把截取后的数据追加到StringBuufer对象后
sb.append("添加的", 0, 2);
System.out.println(sb);
}
// 总结 append(String s,int i,int j)
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("1234");
sb.deleteCharAt(2);
System.out.println(sb);
}
//总结 deleteCharAt(int index) 删除指定索引位置的值
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("abcdefg");
sb.setCharAt(5, 'X');
System.out.println(sb);
}
//setCharAt(int index,char ch) 替换指定位置的字符
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("01234");
sb.delete(1, 3);
System.out.println(sb);
}
//总结 delete(int sindex,int eindex) 从sindex开始删除到eindex。包前不包后
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("01234");
sb.insert(1, "张三");
System.out.println(sb);
}
//总结 insert(int index,obj obj) 把obj的数据插入到指定的位置(index的索引位置)
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("01234");
// 1.对指定的字符串进行截取 包前不包后
// 2.把截取的数据插入到指定的位置
sb.insert(2, "我是大帅哥", 0, 1);
System.out.println(sb);
}
//总结 insert(int iindex,String s,int sindex,int eindex)
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("abcdefg");
sb.reverse();
System.out.println(sb);
}
//reverse() 反转字符的位置
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("abcdefg");
String s = sb.toString();
System.out.println(s);
}
//toString() 把StringBuffer转换成String对象
3.StringBuilder类
StringBuilder是一个线程不安全,内容可变的字符串。效率比StringBuffer高。
使用方式和StringBuufer一样