0、小方法:
1、导出今日时间日期的方法:
1、Date date=new Date();//需要导入import java.util.Date;包
1、赋值字符串方法:
1、引用字符串常量
直接将字符串赋值给String,如:
String str="AAAADED我";
或
String str1;
str1="AAAADED我";
2、利用构造方法直接实例化
String <字符串标识符>=new String("<字符串>");
3、利用字符数组实例化
{方法一}:
(1)创建一个字符数组
(2)将字符数组做实例化的参数
如:
char c[]={'t','i','m','e'};
String a=new String(c);//输出time
{方法二}:
(1)创建一个字符数组,及两个整型变量表示索引位置与索引位置后多少位数字
(2)将字符数组及两个整型变量表示索引位置与索引位置后多少位数字做实例化的参数
如:
char c[]= {'时','间','就','是',' ','金','钱'};
String str=new String(c,4,3);//输出: 金钱
4、利用字节数组实例化
(1)创建Byte型字节数组
(2)创建String的实例(提供默认的方法String.getBytes()获得字节数组的字节码)
如:
byte B[]= {
-60,-6,-70,-61
};
String str4=new String(B);//提供默认的方法String.getBytes()
System.out.println(str4);//输出:您好
2、取子字符串索引位置:
1、indexOf(<子字符串>);//返回一个整型的值,表示该值第一次出现的索引位置
2、indexOf(<子字符串>,<下标值>);//返回一个整型的值,表示该值在下标值后第一次出现的索引位置
3、lastIndexOf(<子字符串>);//返回一个整型的值,表示该值最后一次出现的索引位置
4、indexOf(<子字符串>,<下标值>);//返回一个整型的值,表示该值在下标值前第一次出现的索引位置
3、取索引位置上的字符:
1、charAt(<索引位置>);//返回一个字符值,表示该索引位置上的字符
4、取字符串长度:
1、length();//返回一个整型值,注意!空格也被记录在内
5、取子字符串:
1、substring(<开始截取处的下标>);//从开始截取处的下标一直截取到结束符子字符串
2、substring(<开始截取处的下标>,<结束截取处的下标>);//从开始截取处的下标一直截取到(结束截取处-1)的下标的子字符串
6、连接字符串:
1、使用+关键字或使用+=关键字
7、判断后缀方法:
1、endsWith(<字符串>);//指定一个末尾的字符串值,让其返回一个boolean值(存在则true,不存在则false),某种意义上与lastIndexOf();功能一致
8、判断头部方法:
1、startsWith(<字符串>);///指定一个开头的字符串值,让其返回一个boolean值(存在则true,不存在则false),某种意义上与indexOf();功能一致
9、判断字符串是否相等的方法:
1、equals();//比较字符数组不能使用==(逻辑等),因为字符串的变量是先通过堆区再指向栈区,但是==(逻辑等)是比较内存区域是否相同,而因为字符串的变量是先通过堆区再指向栈区,所以若使用==(逻辑等)则永远输出为false,但是仅针对用字符串实例赋值的字符串。因为若使用字符串赋值法,会直接通过栈区创建再通过堆区指向String变量,当再创建一个String变量会先在栈区查看是否拥有,所以若两个字符串相同则地址相同所以可以使用==(逻辑等)
2、equalsIgnoreCase();//忽略大小写比较
10、去空格方法
1、trim();\\去除首尾空格无需参数,但不能去除中间空格,返回值为一个无空格的字符串
2、replaceAll("\\s","");\\去除所有空格的正则表达式方法,第一个参数是正则表达式,第二个参数是空内容字符串,返回值为一个无空格的字符串
11、格式化字符串:
1、String.format(<格式化参数>,<被格式化的变量参数>);//属性是静态方法
1、格式化参数:
1、格式:%<目标格式><需要被转化的参数>;
12、正则表达式:(正则表达式指的是某种特点的字符串格式)
1、matches(<正则表达式>);//返回一个boolean值,满足正则表达式则返回true,否则则返回false
13、查找子字符串是否存在
1、使用取索引方法:indexOf();//利用其特点若返回值为-1即表示子字符串不存在,否则就存在
14、字符串分割:
1、split(<分割字符串标志>);//返回一个字符串数组,实现遇到分割字符串标志就分割依次存入字符串数组
2、split(<分割字符串标志>,<表示分割多少次的整型数值>);//返回一个字符串数组,实现遇到分割字符串标志就分割按表示分割多少次的整型数值依次存入字符串数组
15、字符串生成类:
1、StringBuffer对象:
1、概念定义:
String的缓冲区,可以实现线程安全修改的可变字符序列,类似于C++的指针变量->运算符插入;且与C++的动态数组相似,具体容量随字符串储存量而变化,可用于多线程,但因为会在使用中对每个线程加锁所以运行效率比StringBuilder弱
2、作用:
1、区别于其他String方法,不是对“常量”进行操作,而是直接对“变量”进行修改
2、线性安全,难以篡改(因为储存区域相对其他String方法相对较深),占用空间更小(同样是因为储存区域相对其他String方法相对较深)
2、使用StringBuffer对象必需使用new方法实例化
1、格式:
StringBuffer <合法标识符>=new StringBuffer("<字符串>");//赋值字符串
StringBuffer <合法标识符>=new StringBuffer(<整型数值>);//赋值字符串大小
1、末尾追加字符串:
1、append(<字符串(若输入为数值型也会自动转存为字符型)>);//返回一个StringBuffer对象在StringBuffer对象末尾追加字符串
2、修改指定索引处的字符:(StringBuffer对象独有)
1、setCharAt(<索引位置>,<需要替换的字符类型值>);//返回一个StringBuffer对象,实现修改指定索引处的字符
3、指定索引位置插入字符串:
1、insert(<指定索引位置>,<需要替换的字符串>);//指定索引位置插入字符串,其后字符串自动后移
4、字符串反序:
1、reverse();//返回一个StringBuffer对象,实现将字符串反序输出
5、字符串删除:
1、delete(<开始索引>,<结束索引>);//返回一个StringBuffer对象,实现从开始索引到结束索引-1的删除,若结束索引处超出最大长度则以最大长度处结束
6、字符串替换:
1、replace(<开始索引>,<结束索引>,<需要被替换的字符串>);///返回一个StringBuffer对象,实现将开始索引到结束索引的字符串用需要被替换的字符串替换
2、StringBuilder对象:
1、概念定义:作用方法与StringBuffer几乎完全相同,与StringBuffer兼用但不保证线程安全,虽然不保证线程安全使其不能在多线程中使用,但却使它可以在使用中不必为线程加锁,因此其运行效率比StringBuffer高
3、StringBuilder、StringBuffer、String关系:
1、StringBuilder、StringBuffer、String可以相互转化
(1)String转StringBuilder、StringBuffer
1、StringBuilder <合法标识符>=new StringBuilder("<合法字符串>");//String转StringBuilder
2、StringBuffer <合法标识符>=new StringBuffer("<合法字符串>");//String转StringBuffer
(2)StringBuilder、StringBuffer转String
1、<String合法变量名>=<StringBuilder合法变量名>.toString();//StringBuilder转String
2、<String合法变量名>=<StringBuffer合法变量名>.toString();//StringBuffer转String
(3)StringBuilder、StringBuffer互相转换(间接转换)
1、StringBuilder <合法标识符>=new StringBuilder(<StringBuffer合法变量名>.toString());//StringBuffer转StringBuilder
2、StringBuffer <合法标识符>=new StringBuffer(<StringBuilder合法变量名>.toString());//StringBuilder转StringBuffer
2、StringBuilder、StringBuffer、String的不同之处:
1、String:生成的是常量,每次赋值或改变赋值都会经过堆区到栈区生成字符串,运行效率低且占用率高,但是信息安全性高,但是过多生成栈区占用内存区域又使线程安全性低
2、StringBuilder、StringBuffer生产的是变量,每次操作皆是对第一次经过堆区到栈区生成的字符串变量后进行修改,运行效率高且占用率低,但是总是直接对唯一一个栈区进行操作所以信息安全性低,但是只在栈区操作占用内存区域少所以线程安全性高于String。其中StringBuilder运行效率高于StringBuffer,但是StringBuffer的线程安全高于StringBuilder
16、字符串替换:
1、replace(<旧字符序列>,<新字符序列>);//旧字符序列替换为新字符序列,返回一个字符序列接口,将所有的旧字符序列替换成新字符序列
2、replaceAll();//旧字符序列或正则表达式内容替换为新字符串,返回一个字符序列接口,将所有的旧字符序列或正则表达式内容替换成新字符序列
3、replaceFirst();//替换一次,返回一个字符序列接口,仅将第一个出现的旧字符序列替换成新字符序列,并仅执行一次
17、字符串大小写转换:
1、toUpperCase();//字符串转大写,字符串全转大写
2、toLowerCase();//字符串转小写,字符串全转小写