字符串

获取字符串长度

字符串名字.length(),返回该字符串的实际长度,包括空格

字符串查找indexOf()、lastIndexOf();

indexOf()返回的是搜索的字符或字符串首次出现的位置。

        String s = "hello world";
        int k = s.indexOf("w");//此时k的值是6;

lastIndexOf()返回的是搜索的字符或字符串首次出现的位置。

        String s = "hello world";
        int k = s.lastIndexOf('o');//此时k的值是7;

需要注意的是,当lastIndexOf()中参数是空字符串的时候返回的是字符串的长度;即s.lastIndexOf("") == s.length;(数值上相等)。

如果都没有找到所要检索的字符/字符串返回值都是-1。

获取指定索引位置的字符

charAt() --> 将指定索引处的字符返回

        String s = "hello world";
        char k = s.charAt(6);//此时k的值为‘w’;

获取子字符串

substring(0) --> 从字符串下边为0开始截取直到该字符结尾的子串

substring(6) --> 从字符串下边为6开始截取直到该字符结尾的子串(截取字符包括索引位置的字符)

substring(6,9) --> 从字符串下边为6开始截取直到字符串下标为9的子串(截取字符包括索引位置的字符)

去除空格

trim() --> 返回字符串的副本 --> 即忽略前导空格和尾部空格的原字符串

        String s = " hello world ";//输出结果为“ hello world ”
        String k = s.trim();//输出结果为“hello world”

字符串的替换

replace() --> 实现将指定的字符或字符串替换成新的字符或字符串

        String s = "hello world";//输出结果为“hello world”
        String k = s.replace("h","H");//输出结果为“Hello world”
        String s = "hello world";//输出结果为“hello world”
        String k = s.replace("hello","HELLO");//输出结果为“HELLO world”

如果要替换的字符或者字符串在原字符串中出现多次,那么都会被替换掉。

判断字符串的开始与结尾

        String s = "hello hello world";
        boolean k = s.startsWith("w");//判断是否以‘w’开头
        boolean kk = s.endsWith("d");//判断是否以‘d’结尾

判断字符串是否相等

在这里说明java中的字符串比较不能直接用 == 来比较,因为由于内存的地址不同,即使两个字符串的内容完全相同,如果用 == 来比较,结果都会是false

equals() --> 区分大小写的比较

equalsIgnoreCase() --> 不区分大小写

        String s = "abc";
        String ss = "ABC";
        boolean k = s.equals(ss);//在区分大小写的情况下比较s和ss是否相等,结果为false
        boolean kk = s.equalsIgnoreCase(ss);//在不区分大小写的情况下比较s和ss是否相等,结果为true
        

这里注意,首先要满足的是字符串的长度相同,如果长度不同,那么比较结果都是false

按字典序比较两个字符串

compareTo() --> 比较两个字符串的字典序大小

比较分为两种情况

一、两个字符串长度不相等的情况下,如果用字符串长度作为比较对象,且从左到右比较一直相同,返回结果是字符串长度长的字符的长度 - 字符串长度短的字符的长度,反之返回结果同上,但要加一个负号

        String s = "abaa";
        String ss = "ab";
        int k = s.compareTo(ss);//k的值为2 即4-2=2;

        String s = "abaa";
        String ss = "abaabb";
        int k = s.compareTo(ss);//k的值为-2 即6-4=2;

二,当结果为-1,1,0的情况

        String s = "abaa";
        String ss = "ba";
        int k = s.compareTo(ss);//k的值为-1;即ss的字典序比s的大

        String s = "bbaa";
        String ss = "aabb";
        int k = s.compareTo(ss);//k的值为1;即ss的字典序比s的小

        String s = "bbaa";
        String ss = "bbaa";
        int k = s.compareTo(ss);//k的值为0;即ss的字典序和s相同

字母的大小写转化

在java中,除了ASCII码的转化,还可以通过toLowerCase()-->将字符串转化成小写,toUpperCase()-->将字符串转化成大写,来实现大小写的转化,但是这两个方法是将字符串里的全部字符进行转化的(注意,数字或者非字符不受到转化的影响)

字符串分割

split()

        String s = "192.168.0.1";
        String[] f = s.split("\\.");//按照‘.’进行分割,并将分割的字符串存进字符串数组里
        String[] e = s.split("\\.",2);//按照‘.’进行分割,只分割2-1次 并将分割的字符串存进字符串数组里        

格式化字符串

format()

日期的格式化

常用的日期格式化转化符

%te --> 一个月中的某一天

%tb --> 指定语言环境的月份简称

%tB --> 指定语言环境的月份全称

%ta --> 指定语言环境的星期几全称

%tA --> 指定语言环境的星期几简称

%tc --> 包括全部日期和时间信息

%tY --> 四位数年份

%tj --> 一年中的第几天(001~366)

%tm --> 月份

%td --> 一个月的第几天(01~31)

%ty --> 二位数年份

Date date = new Date();//创建Date 对象date获取现在的时间
        String year = String.format("%tY",date);
        String month = String.format("%tB",date);
        String day = String.format("%td",date);
        System.out.printf("如今是:"+year+"年" + month + day + "号");
        //输出结果为”如今是:2023年二月15号“

常用的时间格式化转换符

%tH --> 2位数字的24时制的小时(00~23)

%tI --> 2位数字的12时制的小时(01~12)

%tk --> 2位数字的24时制的小时(0~23)

%tl --> 2位数字的12时制的小时(1~12)

%tM --> 2位数字的分钟(00~59)

%tS --> 2位数字的秒数(00~60)

%tY --> 2位数字的分钟(00~59)

%tL --> 3位数字的毫秒数(000~999)

%tp --> 指定语言环境下上午或下午标记

%tz --> 相对于GMT RFC 82 格式的数字时区偏移量

%tZ --> 时区缩写形式的字符串

%ts --> 1970-01-01 00:00:00至现在经过的秒数

%tQ --> 1970-01-01 00:00:00至现在经过的毫秒数

常用的日期和时间组合的格式

%tF --> “年-月-日”格式(四位年份)

%tD --> “年/月/日”格式(二位年份)

%tc --> 全部日期和时间信息

%tr --> “时:分:秒 PM(AM)”格式(12时制)

%tT --> “时:分:秒”格式(24时制)

%tR --> “时:分”格式(24时制)

posted @ 2023-02-14 17:27  TFOREVERY  阅读(4)  评论(0编辑  收藏  举报