day08笔记

1.API的使用

API(applicatioin programming interface)应用程序接口

可以理解为API就是java中已经定义好的类和类中的方法

帮助文档里面有JavaSE所有的类

2.String的构造方法

package com.itheima01;

public class Demo02 {
    public static void main(String[] args) {
        //String类的创建对象方式
        //目前我们肯定是用第一个最简单的,但是不同的写法有不同的使用场合,以后会用到

        //简单
        String s1 = "abc";
        System.out.println(s1);

        //常规方式
        String s2 = new String("abc");
        System.out.println(s2);

        //把字符数组变成字符串
        char[] chs = {'a','b','c'};
        String s3 = new String(chs);
        System.out.println(s3);

        //把字节数组变成字符串
        byte[] bys = {97,98,99};
        String s4 = new String(bys);
        System.out.println(s4);
    }
}

3.String创建方式的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7GwzKZ8i-1632139995088)(1.String的内存.png)]

4.==号的判断

==用来判断是否相等:

	判断基本类型的时候,是在判断值是否相同
	
	判断引用类型的时候,是在判断地址值是否相同

5.String类的常用方法

必须掌握的方法:
	equals() :   判断两个字符串的内容是否相同
	length() :   获取字符串的长度
	charAt() :   获取指定索引的字符
	
扩展方法:
	substring(): 截取字符串的一部分
	           : 截取字符串从指定索引到末尾
	replace()  : 字符串的内容替换

6.字符串的遍历

获取字符串的每一个字符

package com.itheima01;

public class Demo06 {
    public static void main(String[] args) {
        String s = "学技术到黑马";
 
        //获取每个字符
        //快捷键: s.length().fori
        for (int i = 0; i < s.length(); i++) {
            //获取字符串
            char ch = s.charAt(i);
            //输出字符
            System.out.println(ch);
        }
    }
}

7.练习

7.1登陆案例

准备正确的用户名和密码,让用户输出用户名密码,显示登陆成功或失败

一共最多给三次机会

package com.itheima01;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {

        //准备用户名和密码
        String yhm = "王鑫";
        String mm = "123456";

        //循环三次
        for (int i = 0; i < 3; i++) {
            //键盘录入用户名和密码
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名和密码:");
            String name = sc.next();
            String password = sc.next();

            //判断用户名和密码
            if(yhm.equals(name)&&mm.equals(password)){
                //正确
                System.out.println("登陆成功");
                //跳出循环
                break;
            }else{
                //错误重新输入
                System.out.println("用户名或密码错误");
            }
        }
    }
}
7.2统计字符个数案例

键盘输入一个字符串,统计字符串中大写字母有几个,小写字母有几个,数字有几个,别的都不统计…

package com.itheima01;

import java.util.Scanner;

public class Demo07 {
    public static void main(String[] args) {
        //键盘输入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s = sc.nextLine();

        //定义3个变量
        int count1 = 0;
        int count2 = 0;
        int count3 = 0;

        //遍历字符串
        for (int i = 0; i < s.length(); i++) {
            //获取每一个字符
            char ch = s.charAt(i);
            if(ch>='A'&&ch<='Z'){
                //判断字符是不是大写字母 'A'   'Z'
                count1++;
            }else if(ch>='a'&&ch<='z'){
                //判断字符是不是小写字母 'a'   'z'
                count2++;
            }else if(ch>='0' &&ch<='9'){
                //判断字符是不是数字     '0'   '9'
                count3++;
            }
        }
        //输出
        System.out.println("大写字母:" + count1);
        System.out.println("小写字母:" + count2);
        System.out.println("数字   :" + count3);

    }
}
7.3手机号隐藏显示

把手机号码的中间四位使用****来隐藏掉

package com.itheima01;
import java.util.Scanner;

public class Demo09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();

        String s1 = s.substring(0, 3);

        String s2 = s.substring(7);

        System.out.println(s1+"****"+s2);
    }
}
7.4敏感词过滤
package com.itheima01;

import java.util.Scanner;

public class Demo10 {
    public static void main(String[] args) {
        //数组保存一些脏话
        String[] strs = {"笨蛋","煞笔","妈","死","小可爱"};

        //键盘输入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请打开麦克风交流:");
        String s = sc.next();

        //遍历数组
        for (int i = 0; i < strs.length; i++) {

            //不知道是几个*,就用循环生成*, 骂人的词长度是几,就是几个*
            String xing = "";
            for(int j=0; j< strs[i].length();j++){
                xing = xing + "*";
            }
            //把字符串s里面的这些词替换成*
            s = s.replace(strs[i], xing);
        }

        System.out.println(s);
    }
}

8.StringBuilder的构造方法

package com.itheima02;

public class Demo01 {
    public static void main(String[] args) {
        //StringBuilder创建对象

        StringBuilder sb1 = new StringBuilder();
        System.out.println(sb1);


        StringBuilder sb2 = new StringBuilder("abc");
        System.out.println(sb2);
    }
}

9.StringBuilder的方法

append()		:添加内容
reverse()       :反转内容
toString()      :转成String对象
package com.itheima02;

public class Demo02 {
    public static void main(String[] args) {

        //创建对象
        StringBuilder sb = new StringBuilder();

        //append():添加内容
        sb.append(3.14);
        sb.append("abc");
        sb.append(123);
        sb.append("哈哈哈哈");

        //reverse():反转内容
        sb.reverse();

        //toString():把StringBuilder对象变成String类型
        String s = sb.toString();
        //输出
        System.out.println(sb);
        System.out.println(s);

        //不同的类型不能做比较,equals()方法如果类型不同一定是false
        String s1 = new String("abc");
        StringBuilder s2 = new StringBuilder("abc");
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s1.equals(s2));   //类型不同一定是false
    }
}

10.StringBuilder的功能

​ StringBuilder是可变的字符序列,在做大量的字符串拼接时可以提高效率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ePI5DMdu-1632139995089)(2.StringBuilder的作用.png)]

package com.itheima02;

public class Demo04 {
    public static void main(String[] args) {
        //用String做10W次拼接
        String s = "";
        //获取当前时间
        long time1 = System.currentTimeMillis();
        //循环十万次
        for (int i = 0; i < 100000; i++) {
            s += "a";
        }
        //获取当前时间
        long time2 = System.currentTimeMillis();
        System.out.println((time2-time1)+"毫秒");

        //用StringBuilder做10W次拼接
        StringBuilder sb = new StringBuilder();
        //获取当前时间
        long time3 = System.currentTimeMillis();
        //循环十万次
        for (int i = 0; i < 100000; i++) {
            sb.append("a");
        }
        //获取当前时间
        long time4 = System.currentTimeMillis();
        System.out.println((time4-time3)+"毫秒");
    }
}

以后其实就是在学习类和类中的方法

区分哪个方法属于哪个类,不能记混

Scanner
        nextInt()
        next()
        nextLine()
	
Random
		nextInt(int num)
		
String
		equals(String s)
		length()
		charAt(int index)
		substring(int i ,int j)
		substring(int i)
		replace(String old,String new)
		
StringBuilder
		append(任意类型)
		reverse()
		toString()

生成验证码

package com.itheima02;

import java.util.Random;

public class Demo05 {
    public static void main(String[] args) {

        //调用方法
        String code = getCode();
        //打印
        System.out.println(code);
    }


    //定义方法,这个方法返回一个验证码
    public static String getCode(){
        //准备字符串
        String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        //          0123456789........................                           61
        //创建随机数对象
        Random r = new Random();
        //定义字符串
        String code = "";
        //随机生成4个索引
        for (int i = 0; i < 4; i++) {
            //索引的范围
            int a = r.nextInt(s.length());
            //使用索引获取字符
            char ch = s.charAt(a);
            //拼接
            code += ch;
        }
        //返回结果
        return code;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值