public int length() 获取字符串长度
public char charAt(int index):获取指定索引处的字符
public int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引
public int indexOf(String str):子字符串在大字符串中第一次出现的索引
public int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引
public String substring(int beginIndex):从指定位置开始截取,默认截取到末尾
public String substring(int beginIndex, int endIndex):从指定位置开始截取,截取到指定位置结束(包前,不包后)
//定义一个字符串
String str = "helloworld" ;
// int length():获取字符串长度
System.out.println("length():"+str.length());
//public char charAt(int index):获取指定索引处的字符
System.out.println("charAt():"+str.charAt(4)); //可以去遍历字符串
//public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
System.out.println("indexIf():"+str.indexOf('l'));
System.out.println("indexIf():"+str.lastIndexOf('l'));
//public int indexOf(String str):子字符串在大字符串中第一次出现的索引
System.out.println("indexOf():"+str.indexOf("owo"));
//public String substring(int beginIndex)
System.out.println("substring():"+str.substring(4));
System.out.println("substring():"+str.substring(0));
//public String substring(int beginIndex, int endIndex)
System.out.println("substring():"+str.substring(3, 8));//lowor :包前,不包后
String replace(char oldChar, char newChar) :将指定的字符替换以前的字符
String replace(String oldString, String newString):将以前的子字符串替换新的子字符串
public String trim()
//定义一个字符串:
String s = "helloworld" ;
System.out.println("replace:"+s.replace("owo", "jdk"));
System.out.println("---------------------------------");
String s2 = " hello world " ;
System.out.println("s2:"+s2);
//去除两端空格
String s3 = s2.trim() ;
System.out.println("s3:"+s3);
/**
* 按字典顺序比较!
* public int compareTo(String anotherString):字符串比较方法
*/
String s4 = "abc" ; //['a','b','c'] ---3
String s5 = "hello" ;//['h','e','l','l','o'] --5
System.out.println(s4.compareTo(s5));//--7
public byte[] getBytes() :将字符串转换成字节数组
public char[] toCharArray():将字符串转换为字符数组
public static String valueOf(XXX 变量名) ;可以将任意类型转换为String类型
public String toLowerCase() :将字符串转换小写
public String toUpperCase():将字符串转换成大写
//定义一个字符串:
String str = "JavaSE" ;
// byte[] getBytes() :将字符串转换成字节数组
byte[] bys = str.getBytes() ; //如果是当前平台编码集:是个一个gbk,参数省略;
for(int x = 0 ; x Integer
* char--->Character
* long--->Long
* byte--->Byte
* short-->Short
* boolean--->Boolean
* float-->Float
* double-->Doouble
*/
//int---->String //int(自动拆箱)<---->Integer基本的类型包装类型(自动装箱)--->String类型
int i = 100 ;
String s1 = String.valueOf(i) ; //String:特殊valueOf()
System.out.println(s1);
int i2 = Integer.parseInt(s1) ; //可以将String--->int类型
//public String toLowerCase() :将字符串转换小写
System.out.println("toLowerCase():"+str.toLowerCase());
//public String toUpperCase():将字符串转换成大写
System.out.println("toUpperCase():"+str.toUpperCase());
//public String concat(String str)将指定字符串连接到此字符串的结尾。
String str1 = "hello" ;
String str2 = "world" ;
System.out.println(str1+str2);
//拼接功能
System.out.println(str1.concat(str2));
StringBuffer:线程安全的可变字符序列
前者是线程安全的类,可变的字符序列,内存中提供字符串缓冲区;后者是不可变的字符序列。
从内存角度考虑:前者优于后者:
String类型:在方法区中开辟空间—>占内存
StringBuffer :里面存在初始容量,里面不断的追击字符串(append)
public StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
public StringBuffer(int capacity):指定容量大小
public StringBuffer(String str):构造一个字符串缓冲区:里面的容量(字符串内容英文)大小:字符串长度+16初始容量
public int capacity():初始容量
public synchronized int length():返回字符串长度
//创建一个字符串缓冲区
//无参构造
StringBuffer sb = new StringBuffer() ;
System.out.println(sb);
System.out.println("length():"+sb.length());
System.out.println("capacity():"+sb.capacity());
System.out.println("--------------------------------");
//public StringBuffer(int capacity):指定容量大小
StringBuffer sb2 = new StringBuffer(50);
System.out.println("length():"+sb2.length());
System.out.println("capacity():"+sb2.capacity());
System.out.println("--------------------------------");
//StringBuffer类似于String类型的缓冲区
// String s = "hello" ;
// StringBuffer sb4 = s; //错误的
// StringBuffer sb3 = "hello" ;//错误的
StringBuffer sb3 = new StringBuffer("hello") ;
System.out.println(sb3);
System.out.println("length():"+sb3.length());
System.out.println("capacity():"+sb3.capacity());
StringBuffer append(xxx x):将指定的内容追加(末尾追加)到字符串缓冲区中,返回StringBuffer本身
public StringBuffer insert(int index,xxx x):在指定位置处,插入一个新的内容,返回StringBuffer本身
//创建一个字符串缓冲区
StringBuffer sb = new StringBuffer() ;
System.out.println(sb);
//StringBuffer append(xxx x)
/*System.out.println(sb.append("hello"));
System.out.println(sb.append(true));
System.out.println(sb.append('A'));
System.out.println(sb.append(12.34));
System.out.println(sb.append(100));
System.out.println(sb);*/
/*sb.append("hello") ;
sb.append(true) ;
sb.append(false) ;
sb.append('A') ;
sb.append(12.34) ;
sb.append(100) ;
System.out.println("sb:"+sb);*/
// 链式编程
sb.append("hello").append(true).append('a').append(100).append(12.34) ;
System.out.println("sb:"+sb);
//public StringBuffer insert(int index,xxx x)
sb.insert(5, "world") ;
System.out.println("sb:"+sb);
StringBuffer deleteCharAt(int index) :删除指定位置出的字符,返回字符串缓冲区本身
StringBuffer delete(int start, int end) :删除从指定位置开始到指定位置结束,返回值字符串缓冲区本身
//创建字符串缓冲区
StringBuffer sb = new StringBuffer() ;
//添加内容
sb.append("hello").append("world") ;
System.out.println(sb);
//需求:要删除:e这个字符
/*sb.deleteCharAt(1) ;
System.out.println(sb);
//需求:删除第一个l这个字符
System.out.println(sb.deleteCharAt(1));*/
//StringBuffer delete(int start, int end)
System.out.println(sb.delete(3, 8)); //包前不包后
public StringBuffer replace(int start,int end,String str):从指定位置开始到指定位置结束,用给定的str字符串替换指定的字符内容
//构造一个字符串缓冲区
StringBuffer sb = new StringBuffer() ;
//追加
sb.append("hello") ;
sb.append("world") ;
sb.append("java") ;
System.out.println(sb);
System.out.println(sb.replace(5, 10, "节日快乐"));
public synchronized StringBuffer append(String str) 反转功能
StringBuffer sb = new StringBuffer() ;
sb.append("我爱你") ;
System.out.println("sb:"+sb);
sb.reverse() ;
System.out.println("sb:"+sb);
String substring(int start) :从指定位置默认截取到末尾,返回一个新的字符串
String substring(int start,int end):从指定位置开始截取到指定位置结束
//创建缓冲区对象
StringBuffer sb = new StringBuffer() ;
sb.append("hello") ;
sb.append("world") ;
sb.append("java") ;
//System.out.println(sb.substring(3)) ; //返回的是本截取的字符串内容
System.out.println(sb.substring(3, 8));
System.out.println(sb);