String概述
字符串
- 由多个字符组成的一串数据,0----n个,通常用""
- 字符串一旦被赋值,就不能改变—字符串属于常量"a"
String对象的创建
- String str = new String(“java”);
- String str = “java”
常用方法
public class Test1 {
public static void main(String[] args) {
String str1 = "java";
String str2 = "java";
String str3 = new String("java");
String str4 = new String("java");
//equals:对字符串的值进行比较
System.out.println(str1.equals(str2));//true
System.out.println(str1.equals(str3));//true
System.out.println(str3.equals(str4));//true
// ==:对字符串的地址和值都进行比较
System.out.println(str1 == str2);//true
System.out.println(str1 == str3);//false
System.out.println(str3 == str4);//false
}
}
其他方法
获取
- charAt(int index) :获取指定位置的字符
- getBytes() :将字符串转为字节数组
- 字节是计算机存储数据的基本单位,可以用于文件的读写,不同计算机之间的交互
- indexOf(int ch) :获取ch字符第一次出现的位置,如果字符串中不存在ch字符,则返回-1
- indexOf(String str) :获取str字符第一次出现的位置,如果字符串中不存在str字符,则返回-1
- isEmpty():判断字符串长度是不是为0
- length():返回字符串的长度
- startsWith(String prefix) :字符串以prefix开头
- *substring(int beginIndex) :从beginIndex开始截取到字符串结束的字符串,到字包含beginIndex位置的字符
- substring(int beginIndex, int endIndex) :从beginIndex开始截取到endIndex的字符串,包含beginIndex,但不包含endIndex
转换
- split(String regex) :将字符串拆分为字符串数组
- toCharArray():将字符串转化为字符数组
- toUpperCase() :将字符串中的所有符号转换为大写
替换
- replace(char oldChar, char newChar):替换,将oldChar替换成newChar,不会对原来的字符串产生影响
- replace(CharSequence oldStr, CharSequence newStr) :替换,将oldStr替换成newStr,不会对原来的字符串产生影响
- str.trim():去除字符串的前后空格;注意中文空格,去不掉
可变字符串
*字符串拼接:效率不高
*StringBuilder:非线程安全,通常用在单个线程中。如果在单个线程中使用,建议使用StringBuilder
* 反转 reverse()
*StringBuffer : 线程安全的,在多个线程共享数量时使用StringBuffer,StringBuffer在单个线程中也可以使用
代码演示
package com.tian.test;
public class Test2 {
public static void main(String[] args) {
String str = "java";
str = str + "abc";
str = str + "efg";
str = str + "abc";
System.out.println(str);// javaabcefgabc
StringBuilder strBul = new StringBuilder("java");
strBul.append("abc").append("efg").append("abc");
System.out.println(strBul);// javaabcefgabc
System.out.println(strBul.reverse());// cbagfecbaavaj
}
}