Java-String类

String类的构造方法

* public String():空构造
* public String(byte[] bytes):把字节数组转成字符串
* public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
* public String (char[] value):把字符数组转成字符串
* public String(char[] value,int index,int count):把字符数组的一部分转成字符串
* public String(String original):把字符串常量值转换成字符串

示例如下:

public static void main(String[] args) {
    String s = new String();
    System.out.println(s);

    byte[] arr1 = {97,98,99};
    String s1 = new String(arr1);
    System.out.println(s1);

    byte[] arr2 = {97,98,99,100,101};
    String s2 = new String(arr2,2,3);
    System.out.println(s2);

    char[] arr3 = {'a','b','c','d','e'};
    String s3 = new String(arr3);
    System.out.println(s3);

    String s4 = new String(arr3,2,2);
    System.out.println(s4);

    String s5 = new String("heima");
    System.out.println(s5);
}

String类的判断方法

* equals(Object obj)
* equalsIgnoreCase(String str)
* contains(String str)
* startsWith(String str)
* endsWith(String str)
* isEmpty()

示例如下:

    public static void main(String[] args) {
//      demo1();
//      demo2();
        //“”是字符串常量,是String的一个对象,因此可以调用String类中的方法
        //null是一个空常量,不能调用任何方法,否则会出现空指针异常,可以给任意引用类型赋值
        String s1 = "heima";
        String s2 = "";
        String s3 = null;
        System.out.println(s1.isEmpty());
        System.out.println(s2.isEmpty());
        System.out.println(s3.isEmpty());

    }

    private static void demo2() {
        String s1 = "我爱heima,哈哈哈";
        String s2 = "heima";
        String s3 = "baima";
        String s4 = "我爱";
        String s5 = "哈哈哈";
        System.out.println(s1.contains(s2));
        System.out.println(s1.contains(s3));
        System.out.println(s1.startsWith(s4));
        System.out.println(s1.endsWith(s5));
    }

private static void demo1() {
    String s1 = "heima";
    String s2 = "heima";
    String s3 = "HeiMa";
    System.out.println(s1.equals(s2));
    System.out.println(s1.equalsIgnoreCase(s3));
}

String类的获取功能

int length():获取字符串的长度
char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引
int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引
lastIndexOf
String substring(int start):从指定位置开始截取字符串,默认到末尾
String substring(int start,int end):从指定位置开始到指定位置结束截取字符串

示例如下:

public static void main(String[] args) {
//      demo1();
//      demo2();
//      demo3();
//      demo4();
        String s = "woaiheima";
        s.substring(5);
        System.out.println(s);//结果还是woaiheima,substring会产生一个新的字符串,需要变量进行接收
    }

    private static void demo4() {
        String s1 = "heimawudi";
        String s2 = s1.substring(5);
        System.out.println(s2);

        String s3 = s1.substring(0, 5);//包含头不包含尾
        System.out.println(s3);
    }

    private static void demo3() {
        String s1 = "woaiheima";
        int index1 = s1.indexOf('a', 3);//从指定位置开始向后找
        System.out.println(index1);

        int index2 = s1.lastIndexOf('a');//从后向前找
        System.out.println(index2);

        int index3 = s1.lastIndexOf('a',7);
        System.out.println(index3);
    }

    private static void demo2() {
        String s1 = "heima";
        int index = s1.indexOf('m');//参数接收int类型,char类型会自动提升
        System.out.println(index);
        //如果不存在,返回是-1

        int index1 = s1.indexOf("ma");//获取字符串中第一个字符出现的位置
        System.out.println(index1);

        int index2 = s1.indexOf("ei", 2);
        System.out.println(index2);
    }

    private static void demo1() {
        //      int[] arr = {11,22,33};
        //      System.out.println(arr.length);//数组中的length是属性
                String s1 = "heima";
                System.out.println(s1.length());
                //length()是一个方法,获取的是每一个字符
                String s2 = "你要减肥,造吗?";
                System.out.println(s2.length());

                char c = s2.charAt(5);//根据索引获取对应位置的字符
                System.out.println(c);
                char c1 = s2.charAt(10);//StringIndexOutOfBoundsException字符串索引越界异常
    }
}

String类的转换功能

byte[] getBytes():把字符串转换成字节数组
char[] toCharArray():把字符串转换成字符数组
static String valueOf(char[] chs):把字符数组转换成字符串
    注:String类的valueOf方法可以把任意类型的数据转成字符串

示例如下:

public static void main(String[] args) {
        /*byte[] a = {'a','b'};
        String s = new String(a);
        System.out.println(s);*/
        //将字符串转换成字符数组
//      demo1();
//      demo2();
        char[] arr = {'a','b','c'};
        String s = String.valueOf(arr);//String类的valueof方法可以将任意类型的数据转换成字符串
        System.out.println(s);

        String s2 = String.valueOf(100);//将100转换成字符串
        System.out.println(s2 + 100);

        Person p1 = new Person("张三", 23);
        String s3 = String.valueOf(p1);//调用对象的toString方法
        System.out.println(s3);
        //toLowerCase():将字符串转换成小写
        //toUpperCase():将字符串转换成大写
        //concat:字符串拼接
        String c1 = "heima";
        String c2 = "HEIMA";

        System.out.println(c2.toLowerCase());
        System.out.println(c1.toUpperCase());
        System.out.println(c1.concat(c2));//必须是字符串进行拼接
        System.out.println(c1 + c2);//用 + 拼接字符串更强大,可以拼接任意类型
    }

    private static void demo2() {
        String s = "heima";
        char[] arr = s.toCharArray();

        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }

    private static void demo1() {
        String s1 = "abc";
        byte[] arr = s1.getBytes();
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i] + " ");
        }
    }

String类的其他功能

替换:String replace()
去除:String trim()
比较字符:int compareTo() 或者int compareToIgnoreCase()

示例如下:

public static void main(String[] args) {
//      demo1();
//      demo2();

        String s1 = "a";
        String s2 = "aaaaaa";
        int num = s1.compareTo(s2);//按照码表值进行比较的
        System.out.println(num);

        String s3 = "黑";
        String s4 = "马";
        System.out.println('黑' + 0);//char的查找的是Unicode码表的值
        System.out.println('马' + 0);
        int num2 = s3.compareTo(s4);
        System.out.println(num2);

        String s5 = "heima";
        String s6 = "HEIMA";
        int num3 = s5.compareTo(s6);
        System.out.println(num3);
        int num4 = s5.compareToIgnoreCase(s6);
        System.out.println(num4);
    }

    private static void demo2() {
        String s = "   hei  ma  ";
        String s2 = s.trim();//去掉两端点的空格
        System.out.println(s2);
    }

    private static void demo1() {
        String s = "heima";
        String s2 = s.replace('i', 'o');
        System.out.println(s2);

        String s3 = s.replace("he", "wo");
        System.out.println(s3);
    }

练习题

//遍历字符数组
String s = "heima";

    for(int i = 0; i < s.length(); i++) {
        /*char c = s.charAt(i);
        System.out.println(c);*/

        System.out.println(s.charAt(i));

    }
//定义大串中小串出现的次数
        String max = "woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma";
        String min = "heima";

        int count = 0;
        int index = 0;

        while((index = max.indexOf(min)) != -1) {
            count++;
            max = max.substring(index + min.length());
        }
        System.out.println(count);
//模拟用户登录
Scanner sc = new Scanner(System.in);

        for (int i = 0; i < 3; i++) {
            System.out.println("请输入用户名:");
            String userName = sc.nextLine();
            System.out.println("请输入密码:");
            String password = sc.nextLine();
            if ("admin".equals(userName) && "admin".equals(password)) {
                System.out.println(userName + "登陆成功");
                break;
            }else {
                if (i == 2) {
                    System.out.println("您今天的次数已到,请明天再来。");
                }else {
                    System.out.println("用户名或者密码错误," + "您还有" + (2-i) + "次机会");
                }
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值