【Java】基础练习(九)

news2025/8/12 18:40:14

1.结婚

创建一个Person类,如下:

public class Person{
    
    private String name;
    
    private Character gender;
    
    private Integer age;
    
    private Boolean marry;
    
    // 省略 getter / settter / 构造 / toString / hashCode / equals   
}

有一个类CAB,有一个canMarry方法,接收两个Person对象,返回boolean值表示两个人能否结婚。


(1)Person类:

package swp.kaifamiao.codes.Java.d0822;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Person {
    private String name;

    private Character gender;

    private Integer age;

    private Boolean marry;

    public Person() {
    }

    public Person(String name, Character gender, Integer age, Boolean marry) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.marry = marry;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return gender
     */
    public Character getGender() {
        return gender;
    }

    /**
     * 设置
     * @param gender
     */
    public void setGender(Character gender) {
        this.gender = gender;
    }

    /**
     * 获取
     * @return age
     */
    public Integer getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(Integer age) {
        this.age = age;
    }

    /**
     * 获取
     * @return marry
     */
    public Boolean getMarry() {
        return marry;
    }

    /**
     * 设置
     * @param marry
     */
    public void setMarry(Boolean marry) {
        this.marry = marry;
    }

    @Override
    public String toString() {
        return "姓名:" + name + ", 性别: " + gender + ", 年龄: " + age;
    }
}

(2)CAB类:

package swp.kaifamiao.codes.Java.d0822;

import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class CAB {

    public static void start(){
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入第一个人的信息:");
        System.out.print("姓名:");
        String name1 = scanner.nextLine();
        System.out.print("性别:");
        char gender1 = scanner.nextLine().charAt(0);
        System.out.print("年龄:");
        int age1 = scanner.nextInt();
        System.out.print("是否已婚(true/false):");
        boolean marry1 = scanner.nextBoolean();
        scanner.nextLine();  // 清除缓冲区的换行符

        System.out.println("请输入第二个人的信息:");
        System.out.print("姓名:");
        String name2 = scanner.nextLine();
        System.out.print("性别:");
        char gender2 = scanner.nextLine().charAt(0);
        System.out.print("年龄:");
        int age2 = scanner.nextInt();
        System.out.print("是否已婚(true/false):");
        boolean marry2 = scanner.nextBoolean();


        Person per1 = new Person(name1, gender1, age1, marry1);
        Person per2 = new Person(name2, gender2, age2, marry2);
        CAB cab = new CAB();
        System.out.println(per1.getName() + " 和 " + per2.getName() + " " + cab.canMarry(per1, per2));
        scanner.close();
    }

    /**
     * 能否结婚的方法
     * @param per1
     * @param per2
     * @return
     */
    public String canMarry(Person per1,Person per2){
       if (!per1.getGender().equals(per2.getGender()) && !per1.getMarry() && !per2.getMarry()){
           if (per1.getAge() > 18 && per2.getAge() > 18){
               //可以结婚
               return "可以结婚";
           }
       }
       //不能结婚
       return "不能结婚";
    }

}

(3)测试类:

package swp.kaifamiao.codes.Java.d0822;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Test {
    public static void main(String[] args) {
        CAB.start();
    }
}

运行效果:

在这里插入图片描述
在这里插入图片描述


2.统计个数

        请编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个。比如:Hello12345World中字母:10个,数字:5个。


package swp.kaifamiao.codes.Java.d0822;

import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Count {
    /**
     * 定义一个输入字符串的方法
     * @return 输入的字符串
     */
    public static String inputString() {
        Scanner sca = new Scanner(System.in);
        System.out.println("请输入字符串:");
        //拿到控制台的输入
        String str = sca.next();
        return str;
    }

    /**
     * 定义一个查询字母和数字的方法
     */
    public void selectCount(){
        //定义字母和数字的计数器,初始值为0
        int engCount = 0;
        int numCount = 0;

        String str = inputString();
        //定义一个char类型的数组,遍历字符串
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            //判断是否为字母
            if (Character.isLetter(ch)){
                engCount++;
            } else if (Character.isDigit(ch)) {
                numCount++;
            }
        }
        System.out.println("字符串中字母的数量为:" + engCount);
        System.out.println("字符串中数字的数量为:" + numCount);
    }

    /**
     * 程序入口,主函数
     * @param args
     */
    public static void main(String[] args) {
        // 创建Count类的实例
        Count count = new Count();
        // 调用selectCount方法执行计数
        count.selectCount();
    }
}

运行效果:

在这里插入图片描述


3.回文字符串

         请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。


(1) Palindromic判断方法类:

package swp.kaifamiao.codes.Java.d0822;
/*
 * 回文字符串判断
 */

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class Palindromic {
    /**
     * 定义一个判断是否是回文字符串的方法
     */
    public static boolean isPalindrome(String src){
        /*
         定义字符串最左以及最右的下标(索引)
         */
        int left = 0;
        int right = src.length()-1;

        /*
         * 让最左与最右做比较,若第一次两边一样,则让左边下标右移一位,右边下标左移一位
         * 因为不知道次数,所以使用while循环,直到左边大于等于右边时才终止循环
         */

        while (left < right){
            if (src.charAt(left) != src.charAt(right)){
                return false;
            }

            left++;
            right--;
        }
        return true;
    }
}

(2) PalindromicTest测试类:

package swp.kaifamiao.codes.Java.d0822;

import java.util.Scanner;

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
public class PalindromicTest {
    /**
     * 程序入口,主方法
     * @param args
     */
    public static void main(String[] args) {
        //控制台输入字符串
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String src = input.next();

        //调用Palindromic.isPalindrome()方法,定义一个布尔类型的值去接收return的结果
        boolean isPalindromic = Palindromic.isPalindrome(src);

        if (isPalindromic){
            System.out.println(src + "\t" + "是回文字符串!");
        }else {
            System.out.println(src + "\t" + "不是回文字符串!");
        }
    }
}

(3)运行效果:

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/914757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot(二)

###SpringBoot原理分析 ###SpringBoot监控 ###SpringBoot项目部署 #SpringBoot自动配置 Condition&#xff1a;&#xff08;条件&#xff09; Condition是在Spring4.0增加的条件判断功能&#xff0c;通过这个功能可以实现选择性的创建Bean操作 SpringBoot是如何知道要创建…

如何在服务器上用kaggle下载数据集

S1 服务器上安装kaggle cli工具 pip install --user kaggleS2 服务器上创建kaggle目录 mkdir ~/.kaggleS3 进入kaggle账户创建token 生成token 点击右上角头像&#xff0c;选择setting 点击create new token 进入你的浏览器下载页&#xff0c;可以看到有了一个kaggle.jso…

快速了解什么是Cookie

&#x1f600;前言 本篇博文是关于Web 开发会话技术 -Cookie的介绍&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的…

Elasticsearch 入门安装

1.Elasticsearch 是什么 The Elastic Stack, 包括 Elasticsearch、 Kibana、 Beats 和 Logstash&#xff08;也称为 ELK Stack&#xff09;。能够安全可靠地获取任何来源、任何格式的数据&#xff0c;然后实时地对数据进行搜索、分析和可视化。 Elaticsearch&#xff0c;简称为…

0822|C++day2 引用+函数重载

一、左值引用(reference) 如果想要实现两个数据的交换&#xff0c;值传递不能交换实参&#xff0c;地址传递可以交换实参&#xff0c;会额外开辟空间 【1】概念 引用其实就是给变量起了一个别名&#xff0c;孙悟空(齐天大圣)C对C的一个最重要的扩充 【2】定义 数据类型 &am…

链表oj(复制随机链表)、栈和队列oj(循环队列)

文章目录 1.链表oj 2.栈和队列oj 文章内容 1.链表oj 1. 给定一个链表&#xff0c;每个结点包含一个额外增加的随机指针&#xff0c;该指针可以指向链表中的任何结点 或空结点。要求返回这个链表的深度拷贝。力扣 该题不仅要求复制链表&#xff0c;而且每个节点有两个指针域…

【C语言】自定义类型(结构体+枚举+联合)

一、结构体 1、结构体类型的声明 &#xff08;1&#xff09;结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。 &#xff08;2&#xff09;结构的声明 举例&#xff1a; // 形容一名学生 struct Stu {char name[20];…

7.elasticsearch同步工具-logstah

1.logstah Logstash 是一个用于数据处理和转换的开源工具&#xff0c;它可以将来自不同源头的数据收集、转换、过滤&#xff0c;并将其发送到不同的目标。Logstash 是 ELK&#xff08;Elasticsearch、Logstash 和 Kibana&#xff09;技术栈的一部分&#xff0c;通常与 Elastics…

JVM理论知识

一、JVM内存结构 java的内存模型主要分为5个部分&#xff0c;分别是&#xff1a;JVM堆、JVM栈、本地栈、方法区还有程序计数器&#xff0c;他们的用途分别是&#xff1a; JVM堆&#xff1a;新建的对象都会放在这里&#xff0c;他是JVM中所占内存最大的区域。他又分为新生区还…

无处不在的拉普拉斯——边缘,斑点,金字塔

作为拿破仑的老师和“法国牛顿”&#xff0c;拉普拉斯在数学和天体力学中贡献颇多&#xff0c;但其实在图像处理中也会发现拉普拉斯的身影。怎么它又可以用来检测斑点&#xff0c;又可以检测边缘&#xff0c;又可以金字塔重建&#xff0c;还可以平滑&#xff0c;还可以增强细节…

redis 6个节点(3主3从),始终一个节点不能启动

redis节点&#xff0c;始终有一个节点不能启动起来 1.修改了配置文件 protected-mode no&#xff0c;重启 修改了配置文件 protected-mode no&#xff0c;重启redis问题依然存在 2、查看/var/log/message的redis日志 Aug 21 07:40:33 redisMaster kernel: Out of memory: K…

Vue2-Vuex概念及使用场景、Vuex环境搭建、Vuex工作原理、Vuex配置项、Vuex模块化及命名空间

&#x1f954;&#xff1a;山不向我走来&#xff0c;我便向它走去 更多Vue知识请点击——Vue.js VUE2-Day11 理解Vuex1、Vuex是什么2、什么时候使用Vuex Vuex环境搭建1、安装vuex2、创建store文件3、main.js引入store Vuex的工作原理1、原理图2、用案例解释工作原理3、注意点 V…

linux之《进程》

文章目录 进程基础pcb状态优先级 进程的调度常见的调度算法 进程的通信方式 进程基础 pcb 操作系统在创建进程时&#xff0c;会给进程分配一块PCB&#xff08;process control block 进程控制块&#xff09;&#xff0c;对应linux上就是task_struct结构体&#xff0c;PCB里面…

非root用户下安装OpenSSL

1.OpenSSL下载 https://www.openssl.org/source/ 2.将下载好的压缩包上传至linux 3.解压压缩包 tar -xvf openssl-3.0.7.tar.gz 4.创建openssl安装目录 mkdir /home/openssl 5.进入安装包解压后的目录 cd /home/openssl-3.0.7.tar.gz 6.安装openssl&#xff0c;注意命令是…

深度学习论文: WinCLIP: Zero-/Few-Shot Anomaly Classification and Segmentation

深度学习论文: WinCLIP: Zero-/Few-Shot Anomaly Classification and Segmentation WinCLIP: Zero-/Few-Shot Anomaly Classification and Segmentation PDF: https://arxiv.org/pdf/2303.14814.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: h…

hexo优化bilibili显示

首发博客地址 https://blog.zysicyj.top/ It has been 1086 days since the last update, the content of the article may be outdated. 这篇文章属于转载&#xff0c;原地址为Hexo博客引用B站视频并自动适配 在进行引用B站用iframe方式引入视频时发现&#xff0c;通过默认的方…

Python科研绘图--Task02

目录 图形元素 画布 (fifigure)。 坐标图形 (axes)&#xff0c;也称为子图。 轴 (axis) &#xff1a;数据轴对象&#xff0c;即坐标轴线。 刻度 (tick)&#xff0c;即刻度对象。 图层顺序 轴比例和刻度 轴比例 刻度位置和刻度格式 坐标系 直角坐标系 极坐标系 地理…

[oneAPI] 基于BERT预训练模型的SQuAD问答任务

[oneAPI] 基于BERT预训练模型的SQuAD问答任务 Intel Optimization for PyTorch and Intel DevCloud for oneAPI基于BERT预训练模型的SQuAD问答任务语料介绍数据下载构建 模型 结果参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Int…

多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测

多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测。 模型描…

算法通关村第九关——中序遍历与搜索树

1 中序遍历和搜索树原理 二叉搜索树按照中序遍历正好是一个递增序列。其比较规范的定义是&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值均小于它的根节点的值&#xff1b;若它的右子树不为空&#xff0c;则右子树所有节点的值均大于它的根节点的值&…