String类,部分函数使用

目录

 一、字符数组与字符串的相互转换

 二、字节数组与字符串的相互转换

 三、字符串的比较

四、 针对字符串本身的一些基础函数

五、字符串的替换

 六、字符串的分割

七、字符串的截取


一、字符数组与字符串的相互转换

1、将字符数组中的所有内容转换为字符串

 public static void main(String[] args) {
        char[] val={'a','b','c'};
        String val1=new String(val);//字符型数组转换成字符串
        System.out.println(val1);
    }

2、将部分字符数组中的内容转换为字符串

 public static void main(String[] args) {
        char[] val={'a','b','c','d','e'};
        String str=new String(val,1,4);//数组的部分转换为字符串
        System.out.println(str);
    }

3、取得指定索引位置的字符,索引从0 开始 

 public static void main(String[] args) {
        String str="hello";
        char ch=str.charAt(1);//获取字符串中1下标的元素
        System.out.println(ch);
    }

 4、将字符串准换为字符数组

 public static void main(String[] args) {
        String str="hello";
        char[] chars=str.toCharArray();//把字符串转换字符串数组
        System.out.println(Arrays.toString(chars));
    }

5、练习题:判断给定的字符串是不是由纯数字组成 

public static boolean isNumberChar(String s){//判断字符串是不是由纯数组组成的
        for (int i = 0; i <s.length() ; i++) {
            char ch=s.charAt(i);
            if (ch<'0'||ch>'9') {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        String str="1234567890";
        System.out.println(isNumberChar(str));

    }

 二、字节数组与字符串的相互转换

1、将字节数组转换为字符串

 public static void main(String[] args) {
        byte[] bytes={97,98,99,100};//将字节对应的整数转换成相应的字符
        String str=new String(bytes);
        System.out.println(str);

    }

2、将部分字节数组中的内容转换为字符串

   public static void main(String[] args) {
        byte[] bytes={97,98,99,100};//将字节对应的部分整数转换成相应的字符
        String str=new String(bytes,1,3);
        System.out.println(str);
    }

3、将字符串转换为字节数组

public static void main(String[] args) {
        String str="abcd";
        byte[] bytes=str.getBytes();//将字符串转换成字节数组
        System.out.println(Arrays.toString(bytes));
    }

4、编码转换处理

   public static void main(String[] args) {
        String str="小陆";
        byte[] bytes=str.getBytes(StandardCharsets.UTF_8);//字符串为中文时编码器不同转换的字节数组不同
        System.out.println(Arrays.toString(bytes));
    }

【注释】:byte[]是把String按照一个字节一个字节的方式处理,这种适合在网络传输数据储存这样的场景下使用,更适合针对二进制数据来操作。

【注释】:char[]是把String按照一个字符一个字符的方式来处理,更适合针对文本数据来操作,尤其是包含中文的时候。

 三、字符串的比较

1、比较两个字符串的大小

  public static void main(String[] args) {
        String str1="abc";
        String str2="Abc";
       int ret= str1.compareTo(str2);//字符串的比较
        System.out.println(ret);
    }

2、比较两个字符串的内容是否相等(忽略大小写) 

    public static void main(String[] args) {
        String str1="abc";
        String str2="Abc";
       int ret= str1.compareTo(str2);//字符串的比较
        System.out.println(str1.equalsIgnoreCase(str2));
    }

四、 针对字符串本身的一些基础函数

1、判断一个子字符串是否存在

    public static void main(String[] args) {
        String str="asdgabcfghj";
        String tmp="abc";
        boolean flg=str.contains(tmp);//判断str中包不包含tmp
        System.out.println(flg);
    }

2、从头开始查找指定字符串的位置,查到了返回位置位置得开始索引,如果查不到返回-1

   public static void main14(String[] args) {
        String str="asabcdgfabcghj";
        String tmp="abc";
        int a=str.indexOf(tmp);//若str中包含tmp则返回字符a的下标,若没有则返回-1
        System.out.println(a);
    }

3、从指定位置开始查找子字符串得位置 

  public static void main(String[] args) {
        String str="asabcdgfabcghj";
        String tmp="abc";
        int a=str.indexOf(tmp,4);//从指定下标的字符及其之后开始查找是否包含tmp若包含返回字符a的下标,若没有则返回-1
        System.out.println(a);
    }

4、由后向前查找子字符串的位置 

    public static void main(String[] args) {
        String str="asabcdgfabcghj";
        String tmp="abc";
        int a=str.lastIndexOf(tmp);//从后往前找返回a的下标
        System.out.println(a);
    }

5、从指定位置由后向前查找 

public static void main(String[] args) {
        String str="asabcdgfabcghj";
        String tmp="abc";
        int a=str.lastIndexOf(tmp,9);//从指定位置开始从后往前查找返回a的下标
        System.out.println(a);
    }

6、判断是否以指定字符串开头

 public static void main(String[] args) {
        String str="asabcdgfabcghj";
        boolean flg=str.startsWith("asa");//判断字符串str是不是以asa字符开头的
        System.out.println(flg);
    }

 7、从指定位置开始判断是否以指定字符串开头

  public static void main(String[] args) {
        String str="asabcdgfabcghj";
        boolean flg=str.startsWith("a",2);//判断从2下标开始后的字符是否以a开头
        System.out.println(flg);
    }

8、 判断是否以指定字符串结尾

 public static void main(String[] args) {
        String str="asabcdgfabcghj";
        boolean flg=str.endsWith("ghj");//字符串是否以ghj结尾的
        System.out.println(flg);
    }

五、字符串的替换、

1、指定字符替换,替换所有指定字符

  public static void main(String[] args) {
        String str="asabcdgfabcghj";
        String ret=str.replace('a','o');//指定字符替换,替换所有指定字符
        System.out.println(ret);
    }

2、替换所有指定字符串

   public static void main(String[] args) {
        String str="asabcdgfabcghj";
        String ret=str.replace("abc","ppp");//替换所有指定字符串
        System.out.println(ret);
    }

3、替换第一次出现的指定字符串

  public static void main(String[] args) {
        String str="asabcdgfabcghj";
        String ret=str.replaceFirst("abc","ppp");//替换第一次出现的指定字符串
        System.out.println(ret);
    }

 六、字符串的分割

1、字符串的分割

 public static void main(String[] args) {
        String str="name=xiaolu&age=21&id=123456";
        String[] str1=str.split("&");
        for (String s:str1) {//字符串的分割
            System.out.println(s);
        }
    }

 2、字符串的多次分割

   public static void main(String[] args) {
        String str="name=xiaolu&age=21&id=123456";
        String[] str1=str.split("&");
        for (String s:str1) {
            String[] str2=s.split("=");//字符串的多次分割
            for (String ss:str2) {
                System.out.println(ss);
            }
        }
    }

 3、字符".","|","*","+"分割时必须加转义符“//”(举一个点的例子)

  public static void main(String[] args) {
        String str="192.168.1.1";
        String[] str1=str.split("\\.");//按点分割IP地址是必须用转义字符修饰点
        for (String s:str1) {
            System.out.println(s);
        }

4、指定分割几组

    public static void main(String[] args) {
        String str="192.168.1.1";
        String[] str1=str.split("\\.",2);//可以指定分几组
        for (String s:str1) {
            System.out.println(s);
        }
    }

5、同时按多个字符分割

 public static void main(String[] args) {
        String str="11 &22#33";
        String[] str1=str.split(" |&|#");//同时按多个字符分割
        for (String s:str1) {
            System.out.println(s);
        }
    }

七、字符串的截取

1、截取指定位置及其之后的字符串

   public static void main(String[] args) {
        String str="123456";
        String sub=str.substring(2);//截取2下标之后的字符
        System.out.println(sub);
    }

 2、截取指定区间的字符串

   public static void main(String[] args) {
        String str="123456";
        String sub=str.substring(2,5);//截取2下标到5下标之间的字符,注意JAVA 当中一般为左闭右开的
        System.out.println(sub);
    }

【注意】:JAVA 当中的区间一般为左闭右开的

 感谢观看哦!!!!

 

 

 

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陆 小鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值