java字符串的操作、日期和时间的处理,都是非常高频的,所以今天就给大家介绍一下!
String类:
String类位fjava.lang包中,具有丰富的方法,可以计算字符串的长度、比较字符串、连接字符串、提取字符串
使用String对象存储字符串 :String S = "Hello World"; String S = new String("Hello World");
String类提供了length()方法:确定字符串的长度,返回字符串中的字符数。
String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致。
字符串equals()和= =的区别:
基本数据类型的比较方法: == 值是否相等
字符串比较的方法: equals( )比较两个字符串的内容是否相同; --String类重写过该方法
==比较两个字符串内存地址是否相等,比较两个字符串是否为同一对象
(在Object类里equals()和==都是比较内存地址的)
字符串创建对象问题:
//如下代码创建了1个对象
string s1 = "hello";String s2 = "hello";
System . out . print1n(s1. equals(s2));
System. out. println(s1==s2); //此时S1和S2都指向字符串池中的“hello”对象true
//如下代码创建了2个对象
/*String s1 = "he11o";//此时S1指向字符串池中的“hello"对象
String s2 = new String( "he11o");//此时S2指向堆中的“he11o"对象
System. out. println(s1.equals(s2));//true
System. out.println(s1==s2); //false
//如下代码创建了4个对象:
String s1 = new String("he11o");//此时指向堆中的“he11o对象,但该行代码创建了两个对象:字符串池he11o.堆里的hello
String s2 = new String( "He11o");//此时S2指向堆中的“He11o对象,但该行代码创建了两个对象:字符串池He11o、堆里的hello
System. out.println(s1. equals(s2)); //false
System. out.print1n(s1==s2); //false
String类其他比较方法:
equalslgnoreCase()、tolowerCase()、toUpperCase()
去掉字符串两端空格:trim()
String name =" ad min "
System. out.print1n(name.trim());//打印后会去掉空格
字符串连接:+,concat()
String s1 = "he11o";String s2 = " wor1d!" ;
System. out. println(s1+s2); //连接
System. out. println(5+4); //加法
System. out. println(s1.concat(s2)); //连接
String类里面常用的20个方法
和长度有关的方法
返回类型 方法名 作用
int length() 得到一个字符串的字符个数(一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符)
和数组有关的方法
返回类型 方法名 作用
byte[] getBytes() 将一个字符串转换成字节数组
char[] toCharArray() 将一个字符串转换成字符数组
String[] split(String) 将一个字符串按照指定内容劈开
和判断有关的方法
返回类型 方法名 作用
boolean equals(String) 判断两个字符串的内容是否一模一样
boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的内容是否一模一样
boolean contains(String) 判断一个字符串里面是否包含指定的内容
boolean startsWith(String) 判断一个字符串是否以指定的内容开头
boolean endsWith(String) 判断一个字符串是否以指定的内容结尾
和改变内容有关的方法
和改变内容有关的方法,都不会直接操作原本的字符串
而是将符合条件的字符串返回给我们,所以注意接收
返回类型 方法名 作用
String toUpperCase() 将一个字符串全部转换成大写
String toLowerCase() 将一个字符串全部转换成小写
String replace(String,String) 将某个内容全部替换成指定内容
String replaceAll(String,String) 将某个内容全部替换成指定内容,支持正则
String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容
String substring(int) 从指定下标开始一直截取到字符串的最后
String substring(int,int) 从下标x截取到下标y-1对应的元素
String trim() 去除一个字符串的前后空格
和位置有关的方法
返回类型 方法名 作用
char charAt(int) 得到指定下标位置对应的字符
int indexOf(String) 得到指定内容第一次出现的下标
int lastIndexOf(String) 得到指定内容最后一次出现的下标
————————————————
版权声明:本文为CSDN博主「Jacky_Cmd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tomcmd/article/details/54881857
字符串常用提取方法:
substring(index) :从index位置(包含)开始截取,一直截取到字符串末尾
substring( index1, index2) :从index1位置(包含)开始截取,截取到index2位置(不包含)的字符串
字符串的拆分:.split()
StringBuffer类:
StringBuilder类:JDK5.0后提供了StringBuilder ,等价StringBuffer
String是不可变对象,经常改变内容的字符串最好不要使用String
StringBuffer是可变的字符串,字符串经常改变的情况可使用StringBuffer ,更高效
string 、StringBuffer、StringBuilder的区别:
String底层是不可变数组,每次重新赋值会重新创建对象,效率低下,但安全性高
StringBuffer和StringBuilder底层都是可变数组,赋值不会重新创建对象,但根据长度对数组扩容,
StringBuilder因为是单线程,效率最高, 安全性最低
StringBuffer适用于多线程场景,效率较低,安全性较高
Date类:操作日期 java.util.Date包中 Date date = new Date();获取当前日期
SimpleDateFormat类:定制日期格式
Calender类: 抽象类,java.util.Calendar包中 Calendar C = Calendar.getInstance();
用于设置和获取日期/时间数据的特定部分,Calendar类提供一 -些方法和静态字段来操作日历