Java--经典九道练习题

news2024/12/23 16:08:09

文章内容

一、用户登录

二、遍历字符串

三、统计字符个数

四、拼接字符串

五、字符串反转

六、金额转换(较难)

七、手机号屏蔽

 八、身份证号码信息查看

九、游戏骂人敏感词替换

一、用户登录

一直正确的用户名和密码,请用程序实现模拟用户登录。总给三次机会,登录之后,给出相应的提示。

import java.util.Scanner;

public class StringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String un="zhangsan";
		String pw="123456";
		
		for(int i=0;i<3;i++) {
			Scanner sc=new Scanner(System.in);
			System.out.println("请输入用户名:");
			String username=sc.next();
			System.out.println("请输入密码:");
			String password=sc.next();
			if(password.equalsIgnoreCase(pw) && username.equalsIgnoreCase(un)) {
				System.out.println("登录成功!");
				break;
			}else {
				System.out.println("用户名或密码错误,请重新输入,您还剩余"+(2-i)+"次");
			}
		}
		

	}

}

运行结果:

 

二、遍历字符串

需求:

键盘录入一个字符串,使用程序实现在控制台遍历该字符串

 

import java.util.Scanner;

public class StringDemo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String str=sc.next();
		
		for(int i=0;i<str.length();i++) {
			char c=str.charAt(i);
			System.out.print(c+" ");
		}

	}

}

运行结果:

三、统计字符个数

键盘录入一个字符串,统计该字符串中大写字母字符、小写字母字符、数字字符出现的次数

import java.util.Scanner;

public class StringDemo3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.键盘录入一个字符串
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String str=sc.next();
		
		
		
		int bigWords=0;
		int smallWords=0;
		int number=0;
		for(int i=0;i<str.length();i++) {
			char c=str.charAt(i);
			//判断是否为大写字母
			if(c >='A' && c <='Z') {
				bigWords++;
				
				//判断是否为小写字母
			}else if(c >='a' && c <='z') {
				smallWords++;
				
				//判断是否为数字
			}else if(c >='0' && c <='9') {
				number++;
			}
		}
		System.out.println("大写字母有"+bigWords+"个");
		System.out.println("小写字母有"+smallWords+"个");
		System.out.println("数字有"+bigWords+"个");

	}

}

运行结果:

 

四、拼接字符串

定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。

例如:

数组为:int arr[]=[1,2,3]

执行方法后的结果为:[1,2,3]

import java.util.Scanner;

public class StringDemo4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.定义一个数组
		int arr[]= {1,2,3};
		
		String str=arrToString(arr);
		System.out.println(str);
		

	}
	public static String arrToString(int arr[]) {
		if(arr==null) {
			return "";
		}
		if(arr.length==0) {
			return "[]";
		}
		
		
		String result="[";
		//当代码执行到这里表示数组不是null,也不是长度为0的数组
		for(int i=0;i<arr.length;i++) {
			if(i==arr.length-1) {
				result=result+arr[i];
			}else {
				result=result+arr[i]+", ";
			}
			
		}
		//此时拼接右符号
		result=result+"]";
		return result;
	}

}

运行结果:

 

五、字符串反转

定义一个方法,实现字符串反转。

键盘录入一个字符串,调用该方法后,在控制台输出结果

例如:键盘录入abc,输出结果cba

import java.util.Scanner;

public class StringDemo5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String str=sc.next();
		
		//调用该方法用来反转字符串
		String result=reverseArr(str);
		System.out.println(result);

	}
	//调用一个方法
	public static String reverseArr(String s) {
		String result="";
		for(int i=s.length()-1;i>=0;i--) {
			char c=s.charAt(i);
			result+=c;
		}
		
		return result;
	}

}

运行结果:

 

六:金额转换(较难)

 

import java.util.Scanner;

public class StringDemo6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.键盘录入一个金额
		Scanner sc=new Scanner(System.in);
		int money;
		while(true) {
			System.out.println("请输入一个金额:");
			money=sc.nextInt();
			if(money>=0 && money <=9999999) {
				break;
			}else {
				System.out.println("金额无效");
			}
		}
		
		//定义一个变量用来表示钱的大写
		String moneyStr="";
		
		//2.得到money里面的每一个数字
		while(true) {
			//从右往左获取数字,因为右侧是数据的个位
			int ge=money%10;
			String capticalNumber=getCapticalNumber(ge);
			moneyStr=capticalNumber+moneyStr;
			
			//去掉刚刚获取的数据
			money=money/10;
			
			//如果数字上的每一位全部都获取到了,那么money记录的就是0,此循环结束
			if(money==0) {
				break;
			}
		}
		
		//3.
		int count=7-moneyStr.length();
		
		for(int i=0;i<count;i++) {
			moneyStr="零"+moneyStr;
		}
		
		//4.插入单位
		String arr[]= {"佰","拾","万","仟","佰","拾","元"};
		for(int i=0;i<moneyStr.length();i++) {
			char c=moneyStr.charAt(i);
			System.out.print(c);
			System.out.print(arr[i]);
		}

	}
	public static String getCapticalNumber(int number) {
		String arr[]= {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
		
		return arr[number];
	}

}

运行结果:

 

七、手机号屏蔽

public class StringDemo7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.获取一个手机号码
		String phone="13112349468";
		
		//2.截取手机号码前三位
		String start=phone.substring(0, 3);
		
		//截取手机号码后四位
		String end=phone.substring(7);
		
		//4.拼接
		String result=start+"****"+end;
		
		//5.打印
		System.out.println(result);

	}

}

运行结果:

 八、身份证号码信息查看

 

public class StringDemo8 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.定义一个字符串用来存放身份证号码
		String id="456147198009093418";
		
		//2.获取出身年月日
		String year=id.substring(6, 10);
		String month=id.substring(10, 12);		
		String day=id.substring(12,14);
		
		//4.打印信息:
		System.out.println("任务信息为:");
		System.out.println("出生年月日:"+year+"年"+month+"月"+day+"日");

		//3.获取性别
		char gender=id.charAt(16);
		int num=gender-48;
		if(num%2==0) {
			System.out.println("性别为:女");
		}else {
			System.out.println("性别为:男");
		}
		
		

	}

}

运行结果:

九、游戏骂人敏感词替换

public class StringDemo9 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1。获取到说的话
		String talk="你玩的真好,以后不要玩了,CNM,TMD";
		
		//2.定义一个敏感词库
		String arr[]= {"CNM","SB","MLGB","TMD"};
		
		//循环得到数据库中每一个敏感词,依次进行替换
		for(int i=0;i<arr.length;i++) {
			
			talk=talk.replace(arr[i], "***");
		}
		
		//4.打印结果
		System.out.println(talk);

	}

}

 运行结果:

 

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

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

相关文章

获取当前进程的启动程序

本文迁移自本人网易博客&#xff0c;写于2012年3月23日&#xff0c;获取当前进程的启动程序 - lysygyy的日志 - 网易博客 (163.com)1.获取当前进程的启动程序CString sFile;GetModuleFileName(NULL, sFile.GetBuffer(), 255);2.获取文件类型3.Autocad文档交互时&#xff0c;使用…

Camera | 1.Camera基础知识

一口君最近在玩瑞芯微的板子&#xff0c;之前写了几篇基于瑞芯微的文章&#xff0c;大家可以学习一下。 《瑞芯微rk356x板子快速上手》 《Linux驱动|rtc-hym8563移植笔记》 《Linux驱动 | Linux内核 RTC时间架构》 《瑞芯微 | 摄像头ov13850移植笔记》 《rk3568 | 瑞芯微平…

图的生成树与生成森林

文章目录连通图与连通分量强连通图与强连通分量图的连通性判断生成树深度优先生成树邻接表邻接矩阵广度优先生成树邻接表邻接矩阵生成森林获取边弧的权值源代码连通图与连通分量 在无向图中, 若从顶点v到顶点w有路径存在, 则称v和w是连通的. 若图G中任意两个顶点都是连通的, 则…

动态规划--矩阵链相乘问题

明确原始问题A[1:n]&#xff1a;计算矩阵链 所需的最小乘法次数。 &#xff08;1&#xff09;是否满足最优子结构&#xff0c;问题的解是否包含子问题的优化解&#xff1f; 若计算A[1:n]的优化顺序在k处断开矩阵链&#xff0c;即A[1:n]A[1:k]A[k1:n],则在A[1:n]的优化顺序中&a…

ReFactor GNN:从消息传递角度重新审视FMs

分享嘉宾 | 陈艺虹 文稿整理 | William Knowledge Graph Completion(KGC) 知识图谱一般会有多个节点&#xff0c;包括性别、国家等各种各样的节点(也可理解为实体)&#xff0c;节点之间会有不同的关系&#xff0c;可以通过其他的一些节点预测出当前节点的其他信息。恢复这些信…

2023/1/6 Vue学习笔记-1

尝试 Vue.js 最简单的方法是使用 Hello World 例子。你可以在浏览器新标签页中打开它&#xff0c;跟着例子学习一些基础用法。或者你也可以创建一个 .html 文件&#xff0c;然后通过如下方式引入 Vue&#xff1a; <!-- 开发环境版本&#xff0c;包含了有帮助的命令行警告 -…

设计模式——建造者模式

文章目录模式理解基本概念使用示例建造者模式延展模式理解 建造者模式&#xff08;Builder Pattern&#xff09;&#xff1a;建造者模式是一种对象创建型模式。将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这句话理解起来太抽象了&…

B. Dima and a Bad XOR(构造 + 异或性质)

Problem - 1151B - Codeforces 来自Kremland的学生Dima有一个大小为nm的非负整数矩阵a。 他希望从矩阵的每一行中选择一个整数&#xff0c;以便所选整数的按位互斥或严格大于0。帮助他! 形式上&#xff0c;他想选择一个整数序列c1,c2&#xff0c;…&#xff0c;cn(1≤cj≤m)&am…

Integer包装类详解(java)

文章目录&#x1f4d6;前言&#xff1a;&#x1f380;包装类概念&#xff1a;&#x1f380;包装类分类&#xff1a;&#x1f380;包装类integer介绍&#xff1a;&#x1f387;自动装箱和自动拆箱问题【⚠注意面试常考点】&#x1f387;Integer常用方法&#xff1a;&#x1f4d6…

2023真无线蓝牙耳机推荐:高性价比真无线蓝牙耳机各价位蓝牙耳机推荐!

2023年了&#xff0c;蓝牙耳机赛道依然很卷&#xff01;性价比是反映物品可买程度的一种量化的计量方式。现如今&#xff0c;蓝牙耳机市场上主打高性价比的不在少数&#xff0c;而高性价比的东西往往更能精准抓住用户“痛点”&#xff0c;从而受到了不少用户的欢迎。 既然高性…

面试20分钟就完事了,问的实在是太......

干了两年外包&#xff0c;本来想出来正儿八经找个互联网公司上班&#xff0c;没想到算法死在另一家厂子。 自从加入这家外包公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到11月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资…

Spring Boot整合Junit

系列文章目录 Spring Boot[概述、功能、快速入门]_心态还需努力呀的博客-CSDN博客 Spring Boot读取配置文件内容的三种方式_心态还需努力呀的博客-CSDN博客 该系列文章持续更新中~ 目录 系列文章目录 前言 一、搭建SpringBoot工程 二、引入starter-test起步依赖 三、编…

2022年全国研究生数学建模竞赛华为杯F题COVID-19疫情期间生活物资的科学管理问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 F题 COVID-19疫情期间生活物资的科学管理问题 原题再现&#xff1a; 一、背景介绍   进入2022年以来全国范围内陆续出现了多次较大规模疫情爆发事件[1-2]。在大规模疫情爆发期间由于我国采用封闭式管理方式来实现疫情的快速清零&#x…

Vue组件之间的通信(组件之间的数据传递)

一、Vue组件之间的关系 父子关系&#xff1a;A组件和B组件、B组件和C组件、B组件和D组件​ 兄弟关系&#xff1a;C组件和D组件​ 隔代关系&#xff1a;A组件和C组件、A组件和D组件 二、父组件向子组件传递数据 通过props方式向子组件传递数据&#xff08;在子组件中添加props属…

为什么选型低代码平台时,需要注重私有化部署能力?

编者按&#xff1a;低代码平台&#xff0c;目前分为私有化部署和公有化部署&#xff0c;企业为什么倾向于选择私有化部署的低代码平台&#xff1f;本文从私有化部署的概念出发&#xff0c;分析了私有化部署的优势&#xff0c;并进一步介绍了支持私有化部署的老牌低代码平台。关…

工控安全-使用Metasploit攻击Modbus设备

文章目录实验内容环境介绍实验开始开启Modbus从站主机和从站服务利用Metasploit工具扫描Modbus从站中的ID访问从站2的寄存器数据修改从站4线圈值可选择的action实验内容 利用Metasploit工具针对Modbus协议进行攻击&#xff0c;读取Modbus从站寄存器数值以及修改Modbus从站寄存…

应届生学习Java八个月,offer年薪28W,这一年我经历了什么?

自我介绍 首页和大家介绍一下我&#xff0c;我叫 阿杆&#xff08;笔名及游戏名&#x1f923;&#xff09;&#xff0c;19级本科在读&#xff0c;双非院校&#xff0c;主修软件工程&#xff0c;学习方向是后端开发&#xff0c;主要语言Java、Python&#xff0c;今年秋招拿到了…

三、Gtk4-Widgets(1)

1 GtkLavel&#xff0c;GtkButton and GtkBox 1.1 GtkLabel 在前一节中&#xff0c;我们创建了一个窗口并将其显示在屏幕上。现在我们进入下一个主题&#xff0c;在这个窗口中添加部件。最简单的部件是GtkLabel。它是一个包含文本的部件。 1 #include <gtk/gtk.h>2 3 s…

spark sql 执行流程

最近学习了spark sql执行流程&#xff0c;从网上搜到了大都是sql解析、analyzer、optimizer阶段、sparkplan阶段&#xff0c;但是我比较好奇的是&#xff0c;这几个阶段是怎么串起来的&#xff0c;于是花了好几天着重从源码层面看看了看具体实现&#xff0c;写了几点自己认为应…

聊聊Mybatis的缓存

Mybatis缓存是内存中的数据&#xff0c;主要是对数据库查询结果的保存&#xff0c;使用缓存的好处是避免频繁与数据库进行交互&#xff0c;提升查询的响应速度。 数据库缓存扩展 聊到Mybatis缓存。我们可以扩展聊一下MySQL缓存。MySQL缓存其实与Mybatis类似&#xff0c;在查询…