java基础09_字符串String

wallhaven-d5qq1o.jpg

简介

java.Lang.String类代表字符率。
AP1当中说:Javo程序中的所有于好是,都是String类的对势,(就算没有new,也照样是。)
字符串的特点:
1.字符率的内容永不可变。【重点】
2.正是因为字符串不可改变,所以字符串是可以共享使用的字符率效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。
注意:直接写上双引号,就是字符串对象。

创建

package com.wx.demo07;
/*
创建字符串的常见3+1种方式。
三种构造方法:
public String():创建一个空白字符串,不含有任何内容。
pubLic String(char[]array):根据字符数组的内容,来创建对应的字符串
public String(byte[]array):根据字节数组的内容,来创建对应的字符串
直接创建
String str = "123";
 */
public class demo07_String {
    public static void main(String[] args) {
        //空参创建
        String str1 =new String();//空的
        System.out.println("第一个:"+str1);
        //字符串创建
        char[] ca={'A','B','C'};
        String str2 =new String(ca);
        System.out.println("第二个:"+str2);
        //字节数组创建
        byte[] ba ={97,98,99};//编码
        String str3 =new String(ba);
        System.out.println("第三个:"+str3);
        //直接创建
        String s = "123";
        System.out.println("直接创建:"+s);
    }
}

内存情况

字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。

  • 对于基本类型来说,== 是进行数值的比较
  • 对于引用类型,== 是进行【地址值】的比较。
    image.png

常用方法

package com.wx.demo07;
/*
字符串是常量,不会变,每当内容改变,都生成了新的字符串
 */
public class demo07_Commonmethods {
    public static void main(String[] args) {
        String str = "hello";
        //比较
        System.out.println(str.equals("hello"));
        //推荐常量写在前面,否则null在前方会空指针异常
        System.out.println("123".equals("1234"));
        //比较忽略大小写
        System.out.println(str.equalsIgnoreCase("HELLO"));
        //长度
        System.out.println(str.length());
        //拼接
        String str2 = str.concat("world");
        System.out.println(str2);
        //索引单个字符
        char c =str.charAt(1);
        System.out.println(c);
        //查找,没有就-1,有只会输出第一次
        int index = str.indexOf("llo");
        System.out.println("第一次索引的位置:"+index);
        //截取
        System.out.println(str.substring(1));
        System.out.println(str);
        System.out.println(str.substring(0,2));
        //转换 字符串 --》字符数组
        char[]c1 =str.toCharArray();
        for (char i:c1){
            System.out.print(i+" ");
        }
        System.out.println();
        //转换 字符串 --》字节数组
        byte[] b =str.getBytes();
        for (byte i:b){
            System.out.print(i+" ");
        }
        //替换
        System.out.println(str.replace("l","L"));
        String str3 = str.replace('L', 'l');
        System.out.println(str3);
        //分割
        String[] str4 ="aa,aaaaa,aaaaa".split(",");//参数为正则表达式英文句号为\\.
        
        for (String i:str4){
            System.out.print(i+" ");
        }

    }
}

练习:

健盘输入一个字符串,并且统计其中各种字符出现的次数。种类有:大写字母、小写字母、数字、其他;

import java.util.Scanner;

public class demo07_Exercise {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        System.out.print("输入字符串:");
        String str =sc.next();
        char[] chars =str.toCharArray();
        int a=0,b=0,c=0,d=0;
        for (int i = 0; i < chars.length; i++) {
            if('A'<=chars[i]&&chars[i]<='Z'){
                a++;
            }
            else if('a'<=chars[i]&&chars[i]<='z'){
                c++;
            }
            else if ('0'<=chars[i]&&chars[i]<='9'){
                b++;
            }
            else {
                d++;
            }
        }
        System.out.println("大写字母数量:"+a);
        System.out.println("小写字母数量:"+c);
        System.out.println("数字数量:"+b);
        System.out.println("其他数量:"+d);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值