由浅到深认识Java语言(26):阶段性练习

该文章Github地址:https://github.com/AntonyCheng/java-notes

在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!

上一章:由浅到深认识Java语言(25):正则表达式

38.阶段性练习

练习一:

编写一个程序,用于接收用户输入的五个数,并计算这五个数的平均数,最后将计算结果返回;

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		double[] arr = new double[5];
		double pjs = method(arr);
		System.out.println("你输入的五个数的平均数是:"+pjs);
	}
	public static double method(double[] arr) {
		Scanner sc = new Scanner(System.in);
		double sum = 0;
		System.out.println("请输入五个数,用空格分开:");
		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextDouble();
			sum += arr[i];
		}
		sc.close();
		return sum/5;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习二:

编写一个函数,用于接收三角形的底和高,并计算该三角形的面积,将面积返回;

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你的三角形的底和高(用空格隔开):");
		double floor = sc.nextDouble();
		double high = sc.nextDouble();
		sc.close();
		double area = method(floor,high);
		System.out.println("你的三角形面积是:"+area);
	}
	public static double method(double floor,double high) {
		return (floor*high)/2;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习三:

编写一个函数,用于接收 3 到 10 之间的一个数,然后输出由星号组成的长方形;

例如:用户输入 4 ,输出结果如下:

****
* *
* *
****

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你的图像行数:");
		int num = sc.nextInt();
		sc.close();
		method(num);
	}
	public static void method(int n) {
		for (int i = 0; i < n; i++) {
			if (i == 0 || i == n-1) {
				for (int j = 0; j < n; j++) {
					System.out.print("*");
				}
			}else {
				for (int j = 0; j < n; j++) {
					if(j == 0||j==n-1) {
						System.out.print("*");
					}else {
						System.out.print(" ");
					}
				}
			}
			System.out.println();
		}
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习四:

写一个方法 boolean checkIsOddNumber(int num) 判断输入是否为奇数;

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个需要判断的数:");
		int num = sc.nextInt();
		boolean checkIsOddNumber = checkIsOddNumber(num);
		System.out.println(checkIsOddNumber);
	}

	public static boolean checkIsOddNumber(int num) {
		if (num % 2 == 0) {
			return false;
		} else {
			return true;
		}
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习五:

写一个方法 boolean checkIsPrimeNumber(int num) 判断输入是否为素数;

方法一:

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个需要判断的数:");
		int num = sc.nextInt();
		boolean checkIsPrimeNumber = checkIsPrimeNumber(num);
		System.out.println(checkIsPrimeNumber);
	}

	public static boolean checkIsPrimeNumber(int num) {
		if(num<=1) {
			return false;
		}else {
			int count = 0;
			for (int i = 2; i <= num; i++) {
				if(num%i != 0) {
					count++;
				}
			}
			if(count == num-2) {
				return true;
			}else {
				return false;
			}
		}
	}
}

方法二:

import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个需要判断的数:");
		int num = sc.nextInt();
		boolean checkIsPrimeNumber = checkIsPrimeNumber(num);
		System.out.println(checkIsPrimeNumber);
	}

	public static boolean checkIsPrimeNumber(int num) {
		if (num <= 1) {
			return false;
		} else {
			for (int i = 2; i < num; i++) {
				if (num % i == 0) {
					return false;
				}
			}
		}
		return true;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习六:

打印一棵圣诞树;

import java.util.Iterator;
import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		method();
	}

	public static void method() {
		for (int i = 1; i <= 15; i++) {
			if (i <= 5) {
				for (int j = 0; j < 8 - i; j++) {
					System.out.print(" ");
				}
				for (int j = 0; j < 2 * i - 1; j++) {
					System.out.print("*");
				}
				System.out.println();
			} else if (i <= 11) {
				for (int j = 0; j < 11-i; j++) {
					System.out.print(" ");
				}
				for (int j = 0; j < 2*i-7; j++) {
					System.out.print("*");
				}
				System.out.println();
			} else {
				for (int j = 0; j < 6; j++) {
					System.out.print(" ");
				}
				for (int j = 0; j < 3; j++) {
					System.out.print("*");
				}
				System.out.println();
			}
		}
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习七:

用 Java 代码将数组元素顺序颠倒;

import java.util.Arrays;

public class Demo {
	public static void main(String[] args) {
		int arr[] = {2,3,4,5,6,7};
		int[] method = method(arr);
		System.out.println(Arrays.toString(method));
	}

	public static int[] method(int[] arr) {
		int n = arr.length;
		for (int i = 0; i < arr.length/2; i++) {
			int temp = arr[i];
			n=n-1;
			arr[i] = arr[n];
			arr[n] = temp;
		}
		return arr;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习八:

一个名为 Account 的类模拟账户,该类的属性和方法如下图所示:

该类包括的属性:账号 id ,余额 balance , 年利率 annualInterestRate;

包含的方法:访问器方法(getter() 和 setter()),取款方法 withdraw() ,存款方法 deposit() ;

注意取款方法应该判断用户余额是否满足取款条件;

再写一个 Customer 的类模拟客户,该类的属性和方法如下图所示:

该类包括的属性:姓 firstName ,名 lastName 和账号 account;

声明一个公有构造器,这个构造器带有两个代表姓名的参数;

声明两个公有存取器来访问该对象的属性;

以上为基础,写一个测试程序:

  • 创建一个Customer,名字叫 Xiao Wu ,他有一个账号为 1900,余额为2000,年利率为 1.23% 的账户。

  • 对 Xiao Wu操作:

    存入 100 元,再取出 960 元,再取出 2000 元,然后打印 Xiao Wu 的基本信息;

    信息:存入成功!100.0元;取出成功!960.0元;余额不足取款失败;Customer [Xiao,Wu] has a account: id is 1900,annualInterestRate is 1.23%,balance is 1140.0;

package top.sharehome.Bag;

public class Demo {
	public static void main(String[] args) {
		Customer c = new Customer("Xiao", "Wu", new Account(1900, 2000, 1.23));
		Account a = c.getAccount();
		a.deposit(100);
		a.withdraw(960);
		a.withdraw(2000);
		System.out.println(a.getBalance());
		String string = c.toString(a.getAnnualInterestRate(), a.getBalance(), a.getId());
		System.out.println(string);
	}
}

class Account {
	private int id;
	private double balance;
	private double annualInterestRate;

	public Account() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Account(int id, double balance, double annualInterestRate) {
		super();
		this.id = id;
		this.balance = balance;
		this.annualInterestRate = annualInterestRate;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public double getBalance() {
		return balance;
	}

	public void setBalance(double balance) {
		this.balance = balance;
	}

	public double getAnnualInterestRate() {
		return annualInterestRate;
	}

	public void setAnnualInterestRate(double annualInterestRate) {
		this.annualInterestRate = annualInterestRate;
	}

	public void withdraw(double amount) {
		if (amount > this.balance) {
			System.out.println("余额不足取款失败");
		} else {
			this.balance = this.balance - amount;
			System.out.println("取出成功!" + amount + "元");
		}
	}

	public void deposit(double amount) {
		this.balance += amount;
		System.out.println("存入成功!" + amount + "元");
	}
}

class Customer {
	private String firstName;
	private String lastName;
	private Account account;

	public Customer(String firstName, String lastName, Account account) {
		super();
		this.firstName = firstName;
		this.lastName = lastName;
		this.account = account;
	}

	public Customer() {
		super();
		// TODO Auto-generated constructor stub
	}

	public String getFirstName() {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public Account getAccount() {
		return account;
	}

	public void setAccount(Account account) {
		this.account = account;
	}

	public String toString(double annualInterestRate, double balance, double id) {
		return "Customer [" + firstName + ", " + lastName + "] has a account: id is " + account.getId()
				+ " , annualInterestRate is \n" + annualInterestRate + "% , balance is " + balance;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习九:

统计 “a12 12bsk1928bc” 中的数字字符的数量;

方法一:运用字符在底层是数字存储,进行判断识别;

import java.util.Arrays;

public class Demo {
	public static void main(String[] args) {
		String str = "a12  12bsk1928bc";
		int number = isNumber(str);
		System.out.println(number);
	}

	public static int isNumber(String str) {
		char[] charArray = str.toCharArray();
		int count = 0;
		for (int i = 0; i < charArray.length; i++) {
			if (charArray[i]>='0'&&charArray[i]<='9') {
				count++;
			}
		}
		return count;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法二:运用 Character 中 toString 方法将 str 转换成的字符数组转成 String 类型,然后正则表达式;

import java.util.Arrays;

public class Demo {
	public static void main(String[] args) {
		String str = "a12  12bsk1928bc";
		int number = isNumber(str);
		System.out.println(number);
	}

	public static int isNumber(String str) {
		char[] charArray = str.toCharArray();
		int count = 0;
		for (int i = 0; i < charArray.length; i++) {
			String string = Character.toString(charArray[i]);
			if (string.matches("\\d")) {
				count++;
			}
		}
		return count;
	}
}

打印效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下一章:由浅到深认识Java语言(27):异常

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之六 简单图像倾斜校正处理效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之六 简单图像倾斜校正处理效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之六 简单图像倾斜校正处理效果 一、简单介绍 二、简单图像倾斜校正处理效果实现原理 三、简单图像倾斜校正…

数据结构——认识二叉树

这是一篇回顾二叉树概念的文章 前言&#xff1a;一、了解树形结构1.2 树的定义2.2 树的相关概念2.2 树的表示形式 二、了解二叉树结构和性质2.1 什么是二叉树&#xff1f;2.2 二叉树的性质2.3 二叉树的遍历2.3 二叉树的应用范围2.5 二叉树的优缺点 三、掌握二叉树的存储结构3.1…

NX二次开发常用函数:UF_MODL_ask_feat_......(二)

最近学习NX二次开发发现有一些函数经常使用&#xff0c;俗话说得好&#xff0c;好记性不如烂笔头&#xff0c;现在做一下笔记&#xff0c;帮助理解。 UF_MODL_ask_feat_......在头文件uf_modl.h中 1、UF_MODL_ask_feat_direction &#xff08;查询特征的方向&#xff09; 概…

Java基于微信小程序的校园订餐小程序的实现,附源码和数据库

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

TypeScript类型缩小

类型缩小的概念 前面我们写了一些这样的代码&#xff1a; function padLeft(padding: number | string, input: string): string {if (typeof padding number) {return .repeat(padding) input}return padding input }没有if判断时&#xff0c;无法执行语句return ’ .re…

星云小窝项目1.0——项目介绍(一)

星云小窝项目1.0——项目介绍&#xff08;一&#xff09; 文章目录 前言1. 介绍页面2. 首页2.1. 游客模式2.2. 注册用户后 3. 星云笔记3.1. 星云笔记首页3.2. 星云笔记 个人中心3.2. 星云笔记 系统管理3.3. 星云笔记 文章展示3.3. 星云笔记 新建文章 4. 数据中心5. 交流评论6. …

Qt读取本地系统时间的几种方式

一&#xff0c;使用Windows API函数GetLocalTime&#xff08;精确到毫秒&#xff09; typedef struct _SYSTEMTIME //SYSTEMTIME结构体定义 {   WORD wYear;//年   WORD wMonth;//月   WORD wDayOfWeek;//星期&#xff0c;0为星期日&#xff0c;1为星期一&#xff0c…

深入理解Java中的Reader类

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

【JAVA】通过JAVA实现用户界面的登录

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-wyCvaz0EBNwHcwsi {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

宋仕强说金航标kinghelm萨科微slkor都是网红品牌

宋仕强说金航标kinghelm萨科微slkor都是网红品牌&#xff0c;和宋仕强先生研究的“华强北”大ip一起&#xff0c;相互支持相互驱动&#xff0c;与金航标网站&#xff08;www.kinghelm.com.cn&#xff09;、萨科微网站&#xff08;www.slkormicro.com&#xff09;组合成为宣传矩…

Excel 导入指定分隔符的 csv 文件

原文&#xff1a;https://blog.iyatt.com/?p14373 基于 Excel 2024 预览版测试 csv 文件本身是纯文本的&#xff0c;同行数据之间通过一定的分隔符打断识别为不同的列&#xff0c;常用的分隔符是英文逗号&#xff0c;使用逗号分隔符的 csv 文件直接用 Excel 打开能正常识别单…

输入网址到网页显示全过程

TCP/IP ⽹络模型 对于同⼀台设备上的进程间通信&#xff0c;有很多种⽅式&#xff0c;⽐如有管道、消息队列、共享内存、信号等⽅式&#xff0c;⽽对于不同设备上的进程间通信&#xff0c;就需要⽹络通信&#xff0c;⽽设备是多样性的&#xff0c;所以要兼容多种多样的设备&am…

封装函数实现一维数组输入、输出以及冒泡排序

1. 代码 #include <stdio.h>int InputArray(int *pa, int len) {int i 0;for (i 0; i < len; i){scanf("%d", &pa[i]);}return 0; }int OutputArray(int *pa, int len) {int i 0;for (i 0; i < len; i){printf("%-2d ", pa[i]);}putc…

中标,我们是认真的!菊风再携手吉林银行打造智能双录系统

当前&#xff0c;数字化发展步伐持续加快&#xff0c;各个金融机构纷纷按下数字化转型的加速键&#xff0c;陆续推进数字化发展战略&#xff0c;加快数字金融建设。近期&#xff0c;吉林银行面对业务快速发展的需要&#xff0c;服务效率、人力成本等挑战日益凸显&#xff0c;逐…

YOLOv5全网独家改进: 注意力机制改进 | 并行化注意力设计(PPA)模块,红外小目标暴力涨点 | 2024年3月最新成果

💡💡💡本文独家改进:红外小目标涨点利器,在多个数据集下进行验证,其中并行化 patch-aware 注意力(PPA)模块,解决目标的大小微小以及红外图像中通常具有复杂的背景的问题点 💡💡💡红外小目标实现暴力涨点,只有几个像素的小目标识别率大幅度提升 改进结构图如…

MySQL的基本操作与增删改查管理操作

一、MySQL数据库sql语句 1.1 sql 命令 database数据库table表row行column列user用户select从数据表中获取数据updata更新数据库中的数据delete从数据库中删除数据insert into 向数据表插入数据create database创建新数据库alter database修改数据库create table创建新表alter…

第八节:深入讲解SMB中的Http组件

一、概述 Http组作是SMB中的核心组件之一&#xff0c;在第七节中讲解了如何简洁的进行web程序部署和运行&#xff0c;这只是它的功能之一。在本节中&#xff0c;我们将介绍Http组件的重要属性。 二、请求头Request 1、支持方法 支持POST、GET、PUT、DELETE、OPTIONS等方法&a…

AI数字人“搅局”直播电商

现如今&#xff0c;直播带货已然成为了备受消费者欢迎的一种新的购物模式&#xff0c;人们已经愈发习惯在直播间购物了。在直播带货热度居高不下背后&#xff0c;除了低价优势之外&#xff0c;还在于直播带货所具备的实时互动、全方位展示能够为消费者带去更加真实、直观、沉浸…

Java集合框架初学者指南:List、Set与Map的实战训练

Java集合框架是Java语言的核心部分&#xff0c;它提供了丰富的类和接口&#xff0c;用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型&#xff0c;其中最为常用的是List、Set和Map。 1.List - 有序且可重复的数据清单 概念&#xff1a; List就像一个购物清单&…

python usb与下位机 硬件通信

需求分析 上周接到一个需求 用usb和硬件连接 轮询读取usb中指定功能码的指定个数的数据并生成一个桌面程序 刚接到这个需求时 我第一时间想到的就是使用python去尝试 期间也踩了很多的坑 第一版效果如下 特此记录 环境搭建 首先第一点就是将所需要的库进行安装 这里是我这…