从零开始学JAVA-作业习题(三)

习题资源来自B站:2020-java-入门到大神-慢慢来,别急

前篇文章:从零开始学JAVA-作业习题(二)
后篇文章:从零开始学JAVA-作业习题(四)


同期文章:从零开始学JAVA-笔记汇总(三)

习题相关章节索引(章节未重新排序,与笔记章节序号及名称一一对应)

  • 1.1 类和对象
    • 习题1:学生
  • 1.6 字符串
    • 习题2:API使用练习
    • 习题3:用户登录
    • 习题4:遍历字符串
    • 习题5:统计字符次数
    • 习题6:拼接字符串
    • 习题7:字符串反转
    • 习题8:StringBuilder拼接字符串
    • 习题9:StringBuilder字符串反转
  • 1.7 集合基础


习题Day15-20200528

新文章,同一天的笔记继续~

1.1 类和对象

习题1:学生

需求:学生
首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用
  • 学生类Student
package com.lilin_07;
/*
    成员变量:
        姓名
        年龄

    成员方法:
        学习
        做作业

*/
public class Student {
    //定义成员变量
    String name;
    int age;


    //定义成员方法
    public void study(){
        System.out.println("正在学习");
    }

    public void doHomework(){
        System.out.println("正在做作业");
    }
}

  • 学生测试类StudentTest
package com.lilin_07;

public class StudentTest {
    public static void main(String[] args) {
        //创建对象
        Student std = new Student();

        //调用成员变量
        std.name="小明";
        std.age=12;
        System.out.println(std.name);
        System.out.println(std.age);

        //调用成员方法
        std.study();
        std.doHomework();

    }
}

习题1/备注/总结

需要两个类相互配合。一个为普通类,一个为测试类。测试类需要有main方法来当作程序的入口。

习题Day16-20200529

休息

习题Day17-20200530

休息

习题Day18-20200531

休息

习题Day19-20200601

只有笔记,无习题

习题Day20-20200602

1.6 字符串

习题2:API使用练习

需求:API使用练习
按照帮助文档的使用步骤学习Scanner类的使用,并实现键盘录入一个字符串,最后输出在控制台

使用步骤:

  1. 点击【索引】输入Scanner查找Scanner类
  2. 查看类在哪个包下(java.util.Scanner)
  3. 查看类的描述信息
    3.1 一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
  4. 查看构造方法
  5. 查看成员方法(nextLine()方法)
package com.lilin_09;

import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入字符串:");
        
        //CTRL+ALT+V 自动补全左边的String line=
        String st=sc.nextLine();

        System.out.println("您输入的字符串为:");
        System.out.println(st);
    }
}

习题Day21-20200603

习题3:用户登录

需求:用户登录
已知用户名和密码,请用程序实现模拟用户登录。总共三次机会,登录之后,给出相应的提示

UserDemo

package com.lilin_10;

public class UserDemo {
    private String userName;
    private String passWord;

    public String getPassWord() {
        return passWord;
    }

    public String getUserName() {
        return userName;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }


}

LoginDemo

package com.lilin_10;

import java.util.Scanner;

public class LoginDemo {
    public static void main(String[] args) {
        //用户名
        Scanner sc1 = new Scanner(System.in);
        //密码
        Scanner sc2 = new Scanner(System.in);

        //用户类
        UserDemo up = new UserDemo();
        //设置账号密码
        up.setUserName("li273y");
        up.setPassWord("ll273y");

        //获取账号密码
        String userName=up.getUserName();
        String passWord=up.getPassWord();

        //进入输入循环,根据需求循环3次
        for(int i = 1;i<4;i++) {
            //在循环体内写键盘录入语句,用于循环接收账号密码
            System.out.println("请输入用户名");
            String un = sc1.nextLine();

            System.out.println("请输入密码");
            String pw = sc2.nextLine();

            //如果账号密码正确,则输出相关信息并break退出循环
            if (userName.equals(un) && passWord.equals(pw)) {
                System.out.println("第"+i+"次尝试登录,成功");
                break;
            }

            
            //如果账号密码错误,发出,并以循环次数为条件进行判断,第三次输入错误将有专门的输出语句提示强制退出
            if(i<=2){
                System.out.println("账号或密码第"+i+"次输入错误");
            }else{
                System.out.println("账号或密码输入错误"+i+"次,登录程序被强制退出");
            }
        }
    }
}

习题3/备注/总结

我这里写了一个专门的用户类,用于生成用户对象(用户名、密码),如果按照需求写,直接在main方法中String 定义一下用户名密码即可,我这么写主要是想练习一下新学的东西~~

习题4:遍历字符串

需求:遍历字符串
键盘录入一个字符串,使用程序实现在控制台遍历该字符串
package com.lilin_10;

import java.util.Scanner;

public class CharAt {
    //遍历字符串
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一段字符串");
        String s1 = sc.nextLine();


    /*
    遍历字符串,首先要能够获取到字符串中的每一个字符,
        public char charAt(int index); 能够返回指定索引处的char值,字符串的索引也是从0开始
    */

        for(int i=0;i
习题4/备注/总结

这里犯了一个低级错误,没有psvm,忘记把程序写入main方法里了。。。

习题Day22-20200604

习题5:统计字符次数

需求:统计字符次数
键盘录入一个字符串,统计该字符串中大写字符,小写字符,数字字符出现的次数(不考虑其余类型的字符)
package com.lilin_11;

/*
    统计字符次数
    键盘录入一个字符串,统计该字符串中大写字符,小写字符,数字字符出现的次数(不考虑其余类型的字符)
*/
import java.util.Scanner;

public class StringTest001 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String ch = sc.nextLine();
        int bg=0;
        int sm=0;
        int num=0;
        
        for (int i=0;i='A'&&c<='Z'){ //字符使用单引号
                bg+=1;
            }else if (c>='a'&&c<='z'){
                sm+=1;
            }else if(c>='0'&&c<='9'){
                num+=1;
            }
        }
        System.out.println(bg+","+sm+","+num);
    }
}


习题6:拼接字符串

需求:拼接字符串
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法后的输出结果为:[1,2,3]
package com.lilin_11;


public class StringTest002 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,123,5412,56,67};
        String sb = sub(arr);
        System.out.println(sb);
    }

    public static String sub(int[] arr){
        String st ="";
        for (int i=0;i

习题7:字符串反转

需求:字符串反转
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果,例如,键盘录入abc,输出结果为cba
package com.lilin_11;

import com.lilin_10.CharAt;

import java.util.Scanner;

public class StringTest003 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");

        String s = sc.nextLine();

        String s1 = fanZhuan(s);
        System.out.println(s1);
    }

    public static String fanZhuan(String st){
        String s ="";

        for (int i=st.length()-1;i>=0;i--){
            s=s+st.charAt(i);

        }

        return s;
    }
}

习题7/备注/总结

这道题在方法fanZhuan中的for循环条件没写对,debug排查也发现根本没走for循环直接跳过去了,但是还是没发现原因,看了老师的代码才发现对变量 i 的判断符号写反了,淦!【;i>=0;】写成了【;i<0;】怪不得直接就不进入循环呢。

习题Day23-20200605

公司搬家

习题Day24-20200606

公司搬家

习题Day25-20200607

公司搬家

习题Day26-20200608

习题8:StringBuilder拼接字符串

需求:StringBuilder拼接字符串
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法后输出结果为[1,2,3]
package com.lilin_12;


/*
    定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法后输出结果为[1,2,3]
*/
public class StringBuilderTest001 {
    public static void main(String[] args) {
        int[] arr = {1,2,3123,134,423,67,234};
        //使用方法输出结果
        String s = ziFuChuanPinJie(arr);//通过该方法为s赋值
        System.out.println(s);
    }


    /*
    定义方法,返回数组中的数据并按照执行的格式拼接成一个字符串返回。
        两个名确:
            方法参数:arr
            返回类型:String
    */
    public static String ziFuChuanPinJie(int[] arr){
        //使用String的话既浪费时间又浪费空间,因此使用StringBuilder来优化
        StringBuilder sb = new StringBuilder();

        //System.out.print("["+arr[0]+",");
        sb.append("["+arr[0]+",");

        for(int i = 1;i

习题9:StringBuilder字符串反转

需求:StringBuilder字符串反转
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果,例如,键盘录入abc,输出结果为cba
package com.lilin_12;

import java.util.Scanner;

//定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果,例如,键盘录入abc,输出结果为cba
public class StringBuilderTest002 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一串字符");
        String s = sc.nextLine();

        //调用方法实现字符串反转
        String s1 = fanZhuan(s);
        System.out.println(s1);
    }

    /*
        定义一个方法,实现字符串反转。
        两个名确:
            参数类型:String
            返回值类型:String
    */
    public static String fanZhuan(String str){
        /*
        StringBuilder sb = new StringBuilder(str);
        sb.reverse();
        return sb.toString();
        */

        //可以用一行代码完成该功能
        return new StringBuilder(str).reverse().toString();
        //上面的new StringBuilder(str)没讲他赋给变量,也就是说他没有名字,因此创建了一个【匿名对象】

    }
}

1.7 集合基础

习题Day28-20200610

我从事数据库相关行业,突然发现我的学习周期有点偏长。
决定从培训视频中,提取DBA需要了解的技术进行学习。
新博客地址:DBA需要了解的Java相关技术笔记
书签:视频P135


同期文章:从零开始学JAVA-笔记汇总(三)


前篇文章:从零开始学JAVA-作业习题(二)
后篇文章:从零开始学JAVA-作业习题(四)
习题资源来自B站:2020-java-入门到大神-慢慢来,别急

你可能感兴趣的:(从零开始学JAVA,作业习题)