字符串的常用API以及获取时间

常用API

1.String

1.1是什么

String字符串,底层是一个字符数组,所以字符串的很多特性就是数组的特性

字符串一旦创建,不能修改

为了提高字符串的访问效率,java提供了一种缓存技术,字符串常量池

如果是用String a=""就不会在堆内存创建对象,而是直接在常量池中进行搜索,如果有就直接使用,没有就创建

如果是用String a=new String(“”)会在堆内存创建字符串对象,并且常量池中如果没有,也会创建

image-20240805142442362

1.2基本使用

​ String s1 = “ab”;

​ String s2 = “ab”;

​ System.out.println(s1 == s2);

​ // 以上程序只会在常量池中创建一个ab对象,并且s1和s2都指向ab

​ String s3 = new String(“abc”);

​ String s4 = new String(“abc”);

​ System.out.println(s3 == s4);

​ System.out.println(s3.equals(s4));

​ // 堆内存两个,常量池一个,s3和s4分别指向不同的堆内存

​ String s5 = new String(“zxc”);

​ // intern : 在字符串常量池中查询,是否存在当前字符串,如果不存在就把字符串放进去

​ s5.intern();

​ String s6 = “zxc”;

​ // false , 因为new 存放在堆内存,s6指向的zxc 是常量池

​ // s5.intern(); 把s5放进常量池的时候,发现已经有了,所以并不会把s5放进去

​ System.out.println(s5 == s6);

​ String s7 = new String(“a”) + new String(“a”) ;

​ // a会被放在常量池中一份,堆内存中也有,但是拼接的aa 会在堆内存存储,但是不会在常量池中

​ // 因此 s7.intern() 的时候,会把s7放到常量池中一份

​ s7.intern();

​ // s8=“aa” 发现常量池中已经有s7了(“aa”) 则 直接指向,不再创建

​ String s8 = “aa”;

​ // 因此s7和s8的地址相同

​ System.out.println(s7 == s8);

​ System.out.println(s7.equals(s8));

1.1 构造方法

img

1.2 常用方法

​ // 1 char charAt(int index) : 获取字符串中指定下标的字符

​ String s1 = “ashjbdkfq”;

​ char c1 = s1.charAt(3);

​ System.out.println(c1);

​ // 2 boolean endsWith(String suffix) : 判断某个字符串是否已指定字符串结尾

​ // boolean startsWith(String prefix) : 判断某个字符串是否已指定字符串开头

​ System.out.println(“asdasd”.endsWith(“sd”));

​ // 3 boolean equals(Object obj) : 判断是否相等

​ // boolean equalsIgnoreCase(String str) : 不区分大小写比较是否相等

​ System.out.println(“ASDDSAasddsa”.equalsIgnoreCase(“asddsaAsdDsa”));

​ // 4 int indexOf(String str) : 获取指定字符串的起始索引,不存在返回-1(第一次出现的位置)

​ System.out.println(“ndsajkfnqwga”.indexOf(“aj”));

​ // 5 int indexOf(String str,int fromIndex) : 获取指定字符串的起始索引,不存在返回-1(从指定位置开始向后找)

​ System.out.println(“ndsajafnqawga”.indexOf(“a”,5));

​ // 6 int lastIndexOf(String str) : 获取指定字符串的结束索引,不存在返回-1(最后一次出现的位置)

​ // 7 int lastIndexOf(String str,int formIndex)

​ // 8 int length() 字符串长度

​ System.out.println(“asasdad”.length());

​ // 9 String replace(String str,String replace) : 替换指定字符,返回新字符串

​ System.out.println(“aca.vanbgdn.skca”.replace(“.”, “=”));

​ // replaceAll 替换,支持正则表达式 在正则表达式中 . 代表任意字符

​ System.out.println(“aca.vanbgdn.skca”.replaceAll(“.”, “=”));

​ // 10 String[] split(String regex) : 以特定字符分割,得到字符串数组,支持正则表达式

​ String[] arr = “2024-8-5”.split(“-”);

​ // 11 String substring(int begin) : 获取指定下标为起始的,子字符串(包含)

​ System.out.println(“asbjvkabfa”.substring(3));

​ // String substring(int beginIndex , int endIndex) :获取指定位置起始(包含) 到指定位置结束(不包含)的子字符串

​ System.out.println(“asbjvkabfa”.substring(3,6));

​ // 12 char[] toCharArray() : 把字符串转换为char数组

​ char[] chars = “asdasd”.toCharArray();

​ // 13 String toUpperCase() 转大写

​ // String toLowerCase() 转小写

​ System.out.println(“asdas”.toUpperCase());

​ // 14 String trim() : 删除两边空格

​ System.out.println(" asd dsa ".trim());

1.3 注意事项

不要做频繁的字符串拼接操作

img

img

2. StringBuffer和StringBuilder

2.1 是什么

img

2.2 使用

img

3. System

img

4. Date

4.1 构造方法

img

4.2 时间格式化

(img-dr9AbPIn-1722843495252)]

3. System

[外链图片转存中…(img-53lLmaOM-1722843495253)]

4. Date

4.1 构造方法

[外链图片转存中…(img-LVO9lR1v-1722843495253)]

4.2 时间格式化

img

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值