学习视频链接:https://www.bilibili.com/video/BV17F411T7Ao

文章目录

  • 练习1. 用户登录
  • 练习2. 遍历字符串
  • 练习3. 统计字符串次数
  • 练习4. 字符串拼接
  • 练习5. 字符串反转
  • 练习6. 金额转换
  • 练习7. 手机号屏蔽
  • 练习8. 身份证信息查看
  • 练习9. 敏感词替换
  • 练习10. 对称字符串
  • 练习11. 拼接字符串
  • 练习12. 罗马数字
  • 练习13. 调整字符串

练习1. 用户登录

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

package cn.kox.practice;import java.util.Scanner;/*** @ClassName: codePractice01* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习1,用户登录*/
public class codePractice01 {public static void main(String[] args) {String userName = "kox";String password = "Kox123";Scanner sc = new Scanner(System.in);int count = 3;while (count > 0) {System.out.print("输入用户名:");String user = sc.next();System.out.print("输入密码:");String pd = sc.next();if (user.equals(userName) && pd.equals(password)) {System.out.printf("欢迎%s, 登录成功!", user);System.out.println();break;} else {count--;System.out.printf("登录失败,还有%s次机会", count);System.out.println();}}}
}

练习2. 遍历字符串

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

package cn.kox.practice;import java.util.Scanner;/*** @ClassName: codePractice02* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习2,遍历字符串*/
public class codePractice02 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.next();for (int i = 0; i < str.length(); i++) {System.out.println(str.charAt(i));}}
}

练习3. 统计字符串次数

​ 键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)

package cn.kox.practice;import java.util.Scanner;/*** @ClassName: codePractice03* @Author: Kox* @Data: 2023/1/20* @Sketch: 统计字符次数*/
public class codePractice03 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("输入一个字符:");String str = sc.next();int bigCount = 0;int smallCount = 0;int numberCount = 0;for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c >= 'a' && c <= 'z') {smallCount++;} else if (c >= 'A' && c <= 'Z') {bigCount++;} else if (c >= 48 && c <= 57) {numberCount++;}}System.out.printf("bigCount;%s, smallCount:%s, numberCount:%s", bigCount, smallCount, numberCount);}
}

练习4. 字符串拼接

​ 定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,

​ 并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]

package cn.kox.practice;/*** @ClassName: codePractice04* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习4,拼接字符串*/
public class codePractice04 {public static void main(String[] args) {int[] arr = {1, 2, 3 ,4};System.out.println(arrToString(arr));}public static String arrToString(int[] arr) {if (arr == null) {return "";}if (arr.length == 0) {return "[]";}String result = "[";for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {result += arr[i] + "]";} else {result += arr[i] + ",";}}return result;}
}

练习5. 字符串反转

​ 定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果

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

package cn.kox.practice;import java.util.Scanner;/*** @ClassName: codePractice05* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习5,字符串反转*/
public class codePractice05 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("输入一个字符串:");String str = sc.next();System.out.println(reversalString(str));}public static String reversalString(String str) {String result = "";for (int i = str.length()-1; i > -1; i--) {result += str.charAt(i);}return result;}
}

练习6. 金额转换

​ 把2135变成:零佰零拾零万贰仟壹佰叁拾伍元

​ 把789变成:零佰零拾零万零仟柒佰捌拾玖元

package cn.kox.practice;import java.util.Scanner;/*** @ClassName: codePractice06* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习6,金额转换*/
public class codePractice06 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int monkey;while (true) {System.out.print("请录入一个金额:");monkey = sc.nextInt();if (monkey >= 0 && monkey <= 9999999) {break;} else {System.out.println("金额无效");}}String moneyStr = "";while (true) {int ge = monkey % 10;String capitalNumber = getCapitalNumber(ge);moneyStr = capitalNumber + moneyStr;monkey = monkey / 10;if (monkey == 0) {break;}}int count = 7 - moneyStr.length();for (int i = 0; i < count; i++) {moneyStr = "零" + moneyStr;}System.out.println(moneyStr);String[] arr = {"佰", "拾", "万", "迁", "佰", "拾", "元"};String result = "";for (int i = 0; i < moneyStr.length(); i++) {char c = moneyStr.charAt(i);result = result + c + arr[i];}System.out.println(result);}public static String getCapitalNumber(int number) {String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆" , "柒", "捌", "玖"};return arr[number];}
}

练习7. 手机号屏蔽

需求:以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽

最终效果为:131****9468

package cn.kox.practice;/*** @ClassName: codePractice07* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习7,手机号屏蔽*/
public class codePractice07 {public static void main(String[] args) {String phoneNumber = "13112349468";String start = phoneNumber.substring(0, 3);String end = phoneNumber.substring(7, 11);phoneNumber = start + "****" + end;System.out.println(phoneNumber);}
}

练习8. 身份证信息查看

​ 身份证的每一位都是有固定的含义:

  • 1、2位:省份
  • 3、4位:城市
  • 5、6位:区县
  • 7-14位:出生年、月、日
  • 15、16位:所在地派出所
  • 17位:性别(奇数男性,偶数女性)
  • 18位:个人信息码(随机产生)

要求打印内容方式如下:

​ 人物信息为:

​ 出生年月日:XXXX年X月X日

​ 性别为:男/女

package cn.kox.practice;/*** @ClassName: codePractice08* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习8,身份证信息查看*/
public class codePractice08 {public static void main(String[] args) {String id = "321281202001011234";// 获取出生年月日String year = id.substring(6, 10);String month = id.substring(10, 12);String day = id.substring(12, 14);System.out.println("人物信息为:");System.out.println("出生年月日:" + year + "年" + month + "月" + day + "日");char gender = id.charAt(16);int num = gender - 48;if (num % 2 == 0 ) {System.out.println("性别为:女");} else {System.out.println("性别为:男");}}
}

练习9. 敏感词替换

需求1:键盘录入一个 字符串,如果字符串中包含(TMD),则使用***替换

package cn.kox.practice;/*** @ClassName: codePractice09* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习9,敏感词替换*/
public class codePractice09 {public static void main(String[] args) {String talk = "你玩的真好,以后不要再玩了,fuck";String[] arr = {"TMD", "CNM", "SB", "bitch", "fuck"};for (int i = 0; i < arr.length; i++) {talk = talk.replace(arr[i], "***");}System.out.println(talk);}
}

练习10. 对称字符串

需求:

​ 键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是

对称字符串:123321、111非对称字符串:123123
package cn.kox.practice;import java.util.Scanner;/*** @ClassName: codePractice10* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习10,对称字符串*/
public class codePractice10 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入一个字符串:");String str = sc.next();String result = new StringBuilder().append(str).reverse().toString();System.out.println(str.equals(result));}
}

练习11. 拼接字符串

需求:定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回。

​ 调用该方法,并在控制台输出结果。

​ 例如:数组为int[] arr = {1,2,3};

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

package cn.kox.practice;/*** @ClassName: codePractice11* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习11,拼接字符串*/
public class codePractice11 {public static void main(String[] args) {int[] arr = {1, 2, 3};String result = arrToString(arr);System.out.println(result);}public static String arrToString(int[] arr) {StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i] + "]");} else {sb.append(arr[i]).append(", ");}}return sb.toString();}
}

练习12. 罗马数字

  • 解法一
package cn.kox.practice;import java.util.Scanner;
import java.util.StringJoiner;/*** @ClassName: codePractice12* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习12,罗马数字*/
public class codePractice12Case1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("请输入一个字符串");str = sc.next();boolean flag = checkStr(str);if (flag) {break;} else {System.out.println("输入错误!");}}StringJoiner sj = new StringJoiner(",", "[", "]");for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);int number = c - 48;String s = changeLuoMa(number);sj.add(s);}System.out.println(sj);}public static String changeLuoMa(int number) {String[] arr = {"", "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ"};return  arr[number];}public static boolean checkStr(String str) {if (str.length() > 9) {return false;}for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}
}
  • 解法二
package cn.kox.practice;import java.util.Scanner;
import java.util.StringJoiner;/*** @ClassName: codePractice12Case02* @Author: Kox* @Data: 2023/1/20* @Sketch:*/
public class codePractice12Case2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("请输入一个字符串");str = sc.next();boolean flag = checkStr(str);if (flag) {break;} else {System.out.println("输入错误!");}}StringJoiner sj = new StringJoiner(",", "[", "]");for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);String s = changeLuoMa(c);sj.add(s);}System.out.println(sj);}public static String changeLuoMa(char number) {String str =  switch (number) {case '1' -> "Ⅰ";case '2' -> "Ⅱ";case '3' -> "Ⅲ";case '4' -> "Ⅳ";case '5' -> "Ⅴ";case '6' -> "Ⅵ";case '7' -> "Ⅶ";case '8' -> "Ⅷ";case '9' -> "Ⅸ";default -> "";};return str;}public static boolean checkStr(String str) {if (str.length() > 9) {return false;}for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}
}

练习13. 调整字符串

  • 解法一
package cn.kox.practice;/*** @ClassName: codePractice13* @Author: Kox* @Data: 2023/1/20* @Sketch: 练习13,调整字符串*/
public class codePractice13Case1 {public static void main(String[] args) {String strA = "abcde";String strB = "cdeabd";System.out.println(check(strA, strB));}public static boolean check(String strA, String strB) {for (int i = 0; i < strA.length(); i++) {strA = rotate(strA);if (strA.equals(strB)) {return true;}}return false;}// 旋转字符串,将左侧字符移动到右侧// 形参:旋转前的字符串// 返回值:旋转后的字符串public static String rotate(String str) {char first = str.charAt(0);String end = str.substring(1);return end + first;}
}
  • 解法二
package cn.kox.practice;/*** @ClassName: codePracticeCase2* @Author: Kox* @Data: 2023/1/20* @Sketch:*/
public class codePractice13Case2 {public static void main(String[] args) {String strA = "abcde";String strB = "cdeab";System.out.println(check(strA, strB));}public static boolean check(String strA, String strB) {for (int i = 0; i < strA.length(); i++) {strA = rotate(strA);if (strA.equals(strB)) {return true;}}return false;}// 旋转字符串,将左侧字符移动到右侧// 形参:旋转前的字符串// 返回值:旋转后的字符串public static String rotate(String str) {char[] arr = str.toCharArray();char first = arr[0];for (int i = 1; i < arr.length; i++) {arr[i-1] = arr[i];}arr[arr.length-1] = first;String result = new String(arr);return result;}
}

Java-黑马Java学习练习-day10字符串相关推荐

  1. Java语法快速学习-黑马程序员(个人整理版本)

    Java入门基础视频教程,java零基础自学首选黑马程序员Java入门教程(含Java项目和Java真题)_哔哩哔哩_bilibili为了帮助广大对Java有兴趣和立志进入本行业的零基础学员,本套课程 ...

  2. java学习中,字符串使用(比较、构造方法)(java 学习中的小记录)

    java学习中,字符串使用(比较.构造方法)(java 学习中的小记录)作者:王可利(Star·星星) String的使用 1.在内存中是如何保存字符串. == :比较的是地址(引用数据类型) equ ...

  3. 网站推荐(3)——黑马Java学习路线

    黑马Java学习路线 黑马的java学习路线,很详细,涵盖java基础.Java web 甚至微服务.每个阶段在B站都有配套的视频,同时资料也是可以下载的.非常适合学习 地址:http://yun.i ...

  4. 【原】Java学习笔记022 - 字符串

    1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // ...

  5. Java开发快速学习!黑马java项目实战

    一面 自我介绍 项目中的监控:那个监控指标常见的有哪些? 微服务涉及到的技术以及需要注意的问题有哪些? 注册中心你了解了哪些? consul 的可靠性你了解吗? consul 的机制你有没有具体深入过 ...

  6. java后端系统学习总结 03_java Web基础学习

    猿猿正在系统的学习一些计算机知识,和后端技术栈,目前阶段主要在系统学习java.此专栏,为我学习过程中的学习笔记,便于日后复习回顾来看,也很适合新人学习参考呦. 以下是猿猿对JavaWeb的第一遍学习 ...

  7. Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

    Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/det ...

  8. Java IO流学习总结八:Commons IO 2.5-IOUtils

    Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...

  9. Java IO流学习总结七:Commons IO 2.5-FileUtils

    Java IO流学习总结七:Commons IO 2.5-FileUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/5497 ...

最新文章

  1. java web 怎么实现直播_Java web后端直播接入腾讯IM聊天
  2. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)...
  3. tikz 折线 箭头_问一个关于latex中,使用tikz画图的问题,如何使箭头上方的权值不居中(因为居中会互相重叠)...
  4. android studio中讯飞sdk“组件未安装.(错误码:21002)”的解决办法
  5. JAVA使用MySQL数据库连接时区问题解决方法?
  6. 大学学计算机用游戏本好吗,大学学建筑学用什么配置的笔记本电脑好?
  7. maven ...../.m2/settings.xml
  8. 小偷写给失主的一封信 雷人啊!!
  9. womic网络错误_【无线麦克风(WO Mic)】无线麦克风(WO Mic)安卓版(Android)3.2下载_太平洋下载中心...
  10. linux与电脑ping通配置方法
  11. 实战分析APP提交苹果App Store审核被拒绝的一些原因以及对策
  12. mysql 安装失败原因大全(diao ,基本都让我给踩了个遍,这运气...)
  13. 布局java ee企业级开发_布局JavaEE企业级开发:寻觅框架和开发模式的完美整合...
  14. assertThat详解
  15. 拉萨java培训_西藏拉萨PHP培训地址在哪学费多少
  16. Metro界面的真正意义
  17. PageHelper(分页助手)使用教程
  18. 听见丨NASA专家:20年内可找到外星人
  19. Codevs5288 航线设计(动态规划加强版) 解题报告
  20. 【题解】简单的数学题-题解

热门文章

  1. 虚拟人“搬砖“在冬奥
  2. 腾讯应用宝app迁移,验证签名
  3. 如何学习Android的源代码
  4. 什么是绘画?——以抽象思维理解绘画
  5. 街拍照片后期处理之“水印制作”
  6. python字符串中的数字提取
  7. 自动播放视频并录屏保存的python实现
  8. 如何反转iPhone屏幕的颜色
  9. VirtualBox 安装以及 CentOS Linux 系统环境安装教程
  10. 计算机光盘盘符没有了,光盘驱动器图标不见了。怎么办?