day12Java学习笔记 Scanner、String详解

目录

1.Scanner的概述和构造方法原理:

2.Scanner的hasNextXXX()方法和nextInt()方法

3.获取数据出现的小问题

4.String类的概述

5.String类的构造方法

 6.String的特点一旦被赋值就不再改变

7.String字面值对象和构造方法创建对象的区别

8.String面试题

9.String类的判断功能

10.模拟用户登录

11. 10的断点测试

12. 用户登录案例之登陆成功后玩猜数字小游戏

13.断点测试

14.String类的获取功能

15.字符串的遍历

16.统计字符串中大写、小写、数字字符的个数

17.断点测试

18.String 类的转换功能

19.练习,把一个字符串首字母大写,其余小写

20.String的其他功能

21.20中的小问题

22.把int数组按指定格式拼接为字符串

23.使用功能改进22

24.字符串反转案例

25.大的字符串中找小字符串出现的次数

26.在大的字符串中查找小字符串出现的次数代码案例

27.26中代码的改进优化

28.断点测试

29.总结


1.Scanner的概述和构造方法原理:

day12Java学习笔记 Scanner、String详解_第1张图片

day12Java学习笔记 Scanner、String详解_第2张图片

这里sc对象使用的构造方法是Scanner(InputStream source)而system类中的静态成员变量就是inputStream类型的。所以构造方法使用是 Scanner sc = new Scanner(System.in);

2.Scanner的hasNextXXX()方法和nextInt()方法

day12Java学习笔记 Scanner、String详解_第3张图片

3.获取数据出现的小问题

day12Java学习笔记 Scanner、String详解_第4张图片

4.String类的概述

day12Java学习笔记 Scanner、String详解_第5张图片

5.String类的构造方法

day12Java学习笔记 Scanner、String详解_第6张图片

 day12Java学习笔记 Scanner、String详解_第7张图片

 day12Java学习笔记 Scanner、String详解_第8张图片

 6.String的特点一旦被赋值就不再改变

day12Java学习笔记 Scanner、String详解_第9张图片

 字符串的值意思是,字符串被创建后,字符串本身不会发生改变,而指向它的某个对象,是可以改变的。

7.String字面值对象和构造方法创建对象的区别

day12Java学习笔记 Scanner、String详解_第10张图片

 8.String面试题

day12Java学习笔记 Scanner、String详解_第11张图片

 注意字符串中变量和常量相加在内存上的区别day12Java学习笔记 Scanner、String详解_第12张图片

 day12Java学习笔记 Scanner、String详解_第13张图片

9.String类的判断功能

day12Java学习笔记 Scanner、String详解_第14张图片

 对于String s = ""; 对象s是存在的,内容为空,可以调用s的方法。

对于String s = null; 对象s是不存在的,对象为空,不能调用s的方法。

day12Java学习笔记 Scanner、String详解_第15张图片

注意,对于对象不存在的时候却调用了方法,会出现空指针异常。

10.模拟用户登录

package cn.itcast_test;

import java.util.Scanner;

public class LoginTest {
    public static void main(String[] args) {
        //定义写死的账号的用户名和密码
        String username = "admin";
        String password = "123456";

        //要求最大允许的登录失败次数为3,循环次数明确,使用for循环。
        for (int i = 0; i < 3; i++) {
            
            //使用scanner获取用户输入的用户名和密码
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名");
            String une = sc.nextLine();
            System.out.println("请输入密码");
            String pwd = sc.nextLine();
            
            //使用if,else语句判断字符串是否匹配
            if (une.equals(username) && pwd.equals(password)) {
                System.out.println("登陆成功");
                //登陆成功使用break跳出循环
                break;
            } else {
                //登陆失败时提示用户
                if (i == 2) {
                    //最后一次提示与前两次不同
                    System.out.println("您登录失败次数过多,已冻结。");
                } else {
                    //利用for循环中i的值来提示用户剩余可用的登录次数
                    System.out.println("登陆失败,您还有" + (2 - i) + "次机会。");
                }
            }
        }
    }
}

11. 10的断点测试

day12Java学习笔记 Scanner、String详解_第16张图片

 在main左侧这里点一下使用debug模式调试就可以进行断点测试

12. 用户登录案例之登陆成功后玩猜数字小游戏

GuessNubmerGame类。

package cn.itcast_test;

import java.util.Scanner;

public class GuessNumberGame {
    private GuessNumberGame() {
    }

    public static void start() {
        //定义随机数1-100
        int number = (int) (Math.random() * 100 + 1);
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数来猜数字(1-100)。");

        //猜数字的次数不明确,因此用while循环。
        //这里不必将创建scanner对象和游戏前的输出语句包含到while下
        //只将 int GN = sc.nextInt();包含进去即可
        while (true) {
            int GN = sc.nextInt();
            //判断
            if (GN > number) {
                System.out.println("您输入的数字过大,请重新输入。");
            } else if (GN < number) {
                System.out.println("您输入的数字过小,请重新输入。");
            } else {//若一致提示猜对了,使用break跳出循环,结束游戏。
                System.out.println("恭喜您,猜对了!");
                break;
            }
        }

    }
}

 LoginTest类。

package cn.itcast_test;

import java.util.Scanner;

public class LoginTest {
    public static void main(String[] args) {
        //定义写死的账号的用户名和密码
        String username = "admin";
        String password = "123456";

        //要求最大允许的登录失败次数为3,循环次数明确,使用for循环。
        for (int i = 0; i < 3; i++) {

            //使用scanner获取用户输入的用户名和密码
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名");
            String une = sc.nextLine();
            System.out.println("请输入密码");
            String pwd = sc.nextLine();

            //使用if,else语句判断字符串是否匹配
            if (une.equals(username) && pwd.equals(password)) {
                System.out.println("登陆成功,您可以开始玩猜数字游戏了!");
                //登陆成功使用break跳出循环
                GuessNumberGame.start();
                break;
            } else {
                //登陆失败时提示用户
                if (i == 2) {
                    //最后一次提示与前两次不同
                    System.out.println("您登录失败次数过多,已冻结。");
                } else {
                    //利用for循环中i的值来提示用户剩余可用的登录次数
                    System.out.println("登陆失败,您还有" + (2 - i) + "次机会。");
                }
            }
        }
    }
}

13.断点测试

注意要在GuessNumberGame中的start方法也添加断点

14.String类的获取功能

 15.字符串的遍历

day12Java学习笔记 Scanner、String详解_第17张图片

16.统计字符串中大写、小写、数字字符的个数

day12Java学习笔记 Scanner、String详解_第18张图片

day12Java学习笔记 Scanner、String详解_第19张图片

 day12Java学习笔记 Scanner、String详解_第20张图片

 17.断点测试

18.String 类的转换功能

day12Java学习笔记 Scanner、String详解_第21张图片

19.练习,把一个字符串首字母大写,其余小写

day12Java学习笔记 Scanner、String详解_第22张图片

 day12Java学习笔记 Scanner、String详解_第23张图片

使用链式编程优化

day12Java学习笔记 Scanner、String详解_第24张图片

 20.String的其他功能

day12Java学习笔记 Scanner、String详解_第25张图片

注意,使用比较时,是挨着比较,相同就看下一位,一旦有不同的字符,就用对应的 ASCII值相减,所以,返回值可能有负数、正数、0

day12Java学习笔记 Scanner、String详解_第26张图片

21.20中的小问题

对于这种前三个字符一样但长度不一样的两个字符串使用比较方法,通过查看源码可知,当前几位字符相同,但长度不同时,直接返回了字符串长度相减。

day12Java学习笔记 Scanner、String详解_第27张图片

22.把int数组按指定格式拼接为字符串

day12Java学习笔记 Scanner、String详解_第28张图片

 

day12Java学习笔记 Scanner、String详解_第29张图片

 23.使用功能改进22

day12Java学习笔记 Scanner、String详解_第30张图片

 

day12Java学习笔记 Scanner、String详解_第31张图片

 24.字符串反转案例

day12Java学习笔记 Scanner、String详解_第32张图片

 day12Java学习笔记 Scanner、String详解_第33张图片

25.大的字符串中找小字符串出现的次数

 day12Java学习笔记 Scanner、String详解_第34张图片

 26.在大的字符串中查找小字符串出现的次数代码案例

package cn.itcast_test;

import java.lang.module.FindException;

public class minString_count {
    public static void main(String[] args) {
        String maxString = "woaijavawoaijavawohenaijavajavajava";
        String minString = "java";

        System.out.println(minString+"在"+maxString+"中出现了"+getCount(maxString,minString)+"次。");
    }

    public static int getCount(String maxstr,String minstr){

        int count = 0;
        int index = maxstr.indexOf(minstr);
        while(index!=-1){
            count++;
            maxstr = maxstr.substring(index+minstr.length());
            index = maxstr.indexOf(minstr);
        }
        return count;
    }
}

 27.26中代码的改进优化

注意:while中的index = maxstr.indexOf(minstr)要用括号括起来,执行顺序是,索引,赋值,判断。

public static int getCount(String maxstr,String minstr){

            int count = 0;
            int index ;
            while( (index=maxstr.indexOf(minstr)) != -1){
                count++;
                maxstr = maxstr.substring(index+minstr.length());
            }
            return count;
        }
    }

28.断点测试

29.总结

day12Java学习笔记 Scanner、String详解_第35张图片

 day12Java学习笔记 Scanner、String详解_第36张图片

 day12Java学习笔记 Scanner、String详解_第37张图片

 day12Java学习笔记 Scanner、String详解_第38张图片

 day12Java学习笔记 Scanner、String详解_第39张图片

 day12Java学习笔记 Scanner、String详解_第40张图片

 day12Java学习笔记 Scanner、String详解_第41张图片

 

你可能感兴趣的:(java,开发语言)