重要:String是类,有内存地址,不是基本数据类型,不能用==来判断地址是否相等;
一、定义一个字符串
String name = "oufuhua";
二、String操作方法
- 获取字符串长度(str.length())
String name = "oufuhua"
System.out.println("name = " + name.length()); // name=7
- 除去首尾空格(str.trim())
- 截取( str.substring(1,8))
- 字符串转化数组(str.split(","))
- 替换字符串(str.replace(regx,s))
- 替换全部字符串(str.replaceAll(regx,s))
- 判断一个字符串是否存在(str.indexOf(s))
- 判断字符串是否相等(str.equals(str1))返回true就是匹配成功
没有直接str==str1.
- 忽略大小写的字符串匹配(str.equalsIgnoreCase(str1))
- 判断是否什么开头和什么结尾(str.startsWith(str1),str.endWith(str1))
- 转化为小写 str.toLowerCase()
- 转化为大写 str.toUpperCase()
- 格式化(str.format()) 常用语格式化时间
package demo;
import java.util.Date;
public class XueArray {
// 执行程序
public static void main(String[] args) {
String name =" 欧 富 华 1,2,3";
String name1 = name;
Date date = new Date();
System.out.println(String.format("%tF",date)); // 2017-9-10
System.out.println(String.format("%tT",date)); // 12:22:52
}
}
- 正则匹配 (str.matches()) 返回一个boolean
正则表示“//d” 表示匹配一个数字.js正则(/\d/)
String name = "123123123";
boolean reg = name.matches("\\d+"); // true
三、如果大量操作字符的时候,用StringBuffer性能最好
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("123");
stringBuffer.append("哈哈");
stringBuffer.delete(1,10);
stringBuffer.insert(1,"哈哈");
System.out.println("stringBuffer = " + stringBuffer);
}