【Java】重生之String类再爱我一次---练习题(012)

news2024/9/23 10:29:02

目录

♦️练习一:用户登录

♦️练习二:遍历字符串

♦️练习三:统计字符次数数

♦️练习四:拼接字符串

♦️练习五:反转字符串

♦️练习六:金额转换

♦️练习七:手机号屏蔽


♦️练习一:用户登录

已知正确的用户名和密码,请用程序实现模拟用户登录

总共给三次机会,登录之后,给出相应的提示

🎏分析:

  • 要点一:正确的用户名和密码
  • 要点二:总共三次登陆机会
  • 要点三:给出相应的提示       
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //1.创建用户名和密码两个变量
        String rightUsername = "zhangsan";
        String rightPassword = "123456";
        //2.开辟空间,键盘录入输入的用户名和密码
        //注意:需登录三次,需用循环,又知道循环次数则用for循环
        for (int i = 0; i < 3; i++) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名");
            String Username = sc.nextLine();
            System.out.println("请输入密码");
            String Password = sc.nextLine();
            //3.判断登录是否成功
            if (rightUsername.equals(Username) && rightPassword.equals(Password)) {
                System.out.println("用户登陆成功");
                break;
            } else {
                System.out.println("用户名或密码输入错误,请重新登录");
            }

        }
    }
}

注意:在用户登录成功后需结束循环,加break,而登录错误不用



♦️练习二:遍历字符串

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

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // 创建Scanner对象以获取用户输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入字符串
        System.out.print("请输入一个字符串:");
        String str= scanner.nextLine();

        // 遍历并打印字符串中的每个字符
        for (int i = 0; i < str.length(); i++) {
            char chs = str.charAt(i);
            System.out.println(chs);
        }
    }
}



♦️练习三:统计字符次数数

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

import java.util.Scanner;  

public class CharacterCount {  
    public static void main(String[] args) {  
        // 创建Scanner对象以获取用户输入  
        Scanner scanner = new Scanner(System.in);  
        
        // 提示用户输入字符串  
        System.out.print("请输入一个字符串:");  
        String inputString = scanner.nextLine();  
        
        // 初始化计数器  
        int uppercaseCount = 0;  
        int lowercaseCount = 0;  
        int digitCount = 0;  
        
        // 遍历字符串并统计字符类型  
        for (int i = 0; i < inputString.length(); i++) {  
            char c = inputString.charAt(i);  
            
            if (c>='A'&&c<='Z') 
            {  
                uppercaseCount++; // 大写字母  
            } else if (c>='a'&&c<='z') {  
                lowercaseCount++; // 小写字母  
            } else if (c>='0'&&c<='9')) {  
                digitCount++; // 数字  
            }  
        }  
        
        // 输出统计结果  
        System.out.println("大写字母出现次数: " + uppercaseCount);  
        System.out.println("小写字母出现次数: " + lowercaseCount);  
        System.out.println("数字出现次数: " + digitCount);  
        
        // 关闭Scanner  
        scanner.close();  
    }  
}

注:用ASCII码值来计算字符出现的次数



♦️练习四:拼接字符串

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

🎏分析:

  • 要点一:定义一个方法并返回值
  • 要点二:注意结果的格式
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // 定义整数数组
        int[] arr = {1, 2, 3};

        // 调用拼接方法并打印结果
        String chs= arrToString(arr);
        System.out.println(chs);
    }

    // 方法:将int数组拼接成字符串
    public static String arrToString(int[] arr)
    {   //判断数组是否为空或数组长度是否为0
        if(arr.length==0||arr==null)
        {
           return " ";
        }
       String result="[";
        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 Main {
    public static void main(String[] args) {
        String str = "abc";
        String chs=reverse(str);
        System.out.println(chs);
    }
        public static String reverse(String str)
        {
            String result="";
            for (int i = str.length()-1; i>=0; i--)
            {
                char c=str.charAt(i);//将字符串某索引的值赋值于c
                result=result+c;
            }
            return result;
        }
    }



♦️练习六:金额转换

🎏分析:

  • 步骤一:定义一个方法可将数字转换为大写
  • 步骤二:得到大写数组后在前面补0,补够7位
  • 步骤三:插入单位
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
       //1.键盘录入一个金额
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个金额");
        int money;

        //判断输入的金额是否合理
        //金额合理
        while(true) {
            money=sc.nextInt();
            if (money >= 0 && money <= 9999999) {
                break;//在循环中才能运用break
            }
            //金额不合理
            else {
                System.out.println("金额无效");
            }
        }
        //定义一个变量表示前的大写
        String moneyStr="";

        //2.得到money里面的每一个数字
        while(true)
        {
            //从右往左获取数据,因为右侧时数据的各位
            int ge=money%10;
            String capitalNumber=getCapitalNumber(ge);
            //将得到的大写数字拼接起来
            moneyStr=capitalNumber+moneyStr;//将MoneyStr和capitalNumber调换位置,防止打印出来是倒着的
            money/=10;//将money移位,则下一次money%10得到的就是数据的十位
            if(money==0)
            {
                break;
            }
        }
        System.out.println(moneyStr);

        //3.在前面补零,补够7位
        int count=7-moneyStr.length();
        for (int i = 0; i < count; i++)
        {
         moneyStr="零"+moneyStr;
        }
        System.out.println(moneyStr);

        //4.插入单位
        //定义一个数组表示单位
        String[] arr={"佰","拾","万","仟","佰","拾","元"};
        //遍历数组moneyStr,依次得到数组中元素
        //然后将单位插入进去
        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 getCapitalNumber (int number)
    {
        //定义数组,让数字跟大写中文产生一个对应关系
        String[] arr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        //返回结果
        return arr[number];
    }
}



♦️练习七:手机号屏蔽

🎏方法:

  • String substring(int beginIndex,int endIndex)
  • 注意点:包头不包尾,包左不包右
  • String substring(intbedinIndex)   截取到末尾
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //1.获取一个手机号
      String number="18100000000";
        //2.录取手机号前面几位
        String start=number.substring(0,3);
        //3.录取手机号后面几位
        String end=number.substring(7);
        //4.拼接
        String result=start+"****"+end;
        System.out.println(result);
    }
}

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

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

相关文章

【全国大学生电子设计竞赛】2024年H题

&#x1f970;&#x1f970;全国大学生电子设计大赛学习资料专栏已开启&#xff0c;限时免费&#xff0c;速速收藏~

【一图学技术】5.OSI模型和TCP/IP模型关系图解及应用场景

OSI模型和TCP/IP模型关系图解 OSI模型和TCP/IP模型都是网络通信的参考模型&#xff0c;用于描述网络协议的层次结构和功能。下面是它们的定义和区别&#xff1a; OSI模型&#xff08;Open Systems Interconnection Model&#xff09; OSI模型是一个理论上的七层模型&#xff…

1套农场,20小时,10万张!重建大师6.3矿山重建实测案例

数字矿山是国家战略资源安全保障体系的重要组成部分&#xff0c;是资源可持续发展的重要基石&#xff0c;是化解高危行业风险的根本途径。 国内某矿山&#xff08;图源网络&#xff09; 在矿山的开发与建设过程中&#xff0c;需要定期采集并动态更新矿区的三维空间数据&#x…

嵌入式Linux开发板如何挂载u盘?

第一步&#xff1a;插入U盘。 第二步&#xff1a;查看U盘名称。 dmesg | tail 可以看到此处我的U盘名称为sda&#xff0c;第一个分区为sda1&#xff0c;路径为/dev/sda。 第三步&#xff1a;创建一个文件夹&#xff0c;将u盘挂载到此文件夹下&#xff0c;查看U盘下的文件 sud…

代码随想录训练营 Day16打卡 二叉树 part04 513. 找树左下角的值 112. 路径总和 106. 从中序与后序遍历序列构造二叉树

代码随想录训练营 Day16打卡 二叉树 part04 一、 力扣513. 找树左下角的值 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 &#xff1a; 输入: …

探索算法系列 - 二分查找算法

目录 二分查找&#xff08;原题链接&#xff09; 在排序数组中查找元素的第一个和最后一个位置&#xff08;原题链接&#xff09; 搜索插入位置&#xff08;原题链接&#xff09; x 的平方根&#xff08;原题链接&#xff09; 山脉数组的峰顶索引&#xff08;原题链接&…

数据结构(面试)

线索二叉树 原理&#xff1a;利用树节点的n1个左右空指针指向其遍历序列的前驱和后继&#xff08;线索&#xff09; 哈夫曼树 哈夫曼树定义&#xff1a;在含有n个带权叶节点的二叉树中&#xff0c;其中带权路径&#xff08;WPL&#xff09;最小的二叉树称为哈夫曼树&#x…

协程的八种创建方式

协程简介 在深入了解创建方式之前&#xff0c;我们先简要回顾一下协程是什么。协程是轻量级的线程。它们在协作式多任务处理中运行&#xff0c;允许在不阻塞线程的情况下挂起和恢复。这使得协程非常适合进行异步编程和高性能的并发任务。&#x1f310; Kotlin中创建协程的方式…

IDA相关

IDA相关 IDA pro 7.7 链接: https://pan.baidu.com/s/14F0M1lxZMCoCAmR3AFmm-A?pwdjk14 提取码: jk14 lazy ida https://github.com/P4nda0s/LazyIDA pip install yara pip install keystone24.0.0.0 可以把ida目录里python site-package的内容复制到本机python的lib/si…

html写table表格,后端数据中涉及到身份证号或者电话号的情况,生成excel变成1+e17或者###等类似的加密或科学计数法情况

效果展示&#xff08;对比图&#xff09;&#xff1a; 原&#xff1a; 新&#xff1a; 解决办法&#xff1a; 加以下样式即可展示原来的 style"vnd.ms-excel.numberformat:" 如若想知道…

链表的实现(C++版)

对于链表的学习,之前在C语言部分的时候就已经有学习过,也学会了使用C语言来打造一个链表.如今学了C 则想通过C来打造一个链表,以达到锻炼自己的目的. 1.链表的初步实现 1.节点模板的设置 template <class T> struct ListNode{ListNode <T>* _next;ListNode <T…

【Linux 网络】应用层

文章目录 应用层协议序列化的概念jsoncpp 1. HTTP1.1URLURL编解码 1.2 HTTP的格式HTTP请求格式HTTP响应格式 1.3 HTTP的方法GET/POST 1.4 HTTP的状态码1.5 HTTP的报头cookie和session1.6 简单HTTP服务器 2. HTTPS2.1 加密方式对称加密非对称加密全对称加密混合加密密钥协商对称…

CSS画箭头

向右示例 .arrows {height: 7px;width: 7px;background-color: transparent;border-top: 2px solid rgba(0, 0, 0, 0.3);border-right: 2px solid rgba(0, 0, 0, 0.3);transform: rotate(45deg);margin-left: 6px; } 可以尝试将其封装为组件&#xff08;以微信小程序为例&…

上位机《1》 步进电机、步进驱动器,连接端子(接线盒子)等

正运动技术 固高控制卡 雷赛控制卡 步进电机 电机内部的线圈数不同&#xff0c;组成的电机相数也不同&#xff0c;两相步进电机电机内部是由2个线圈组成&#xff0c;而三相步进电机内部是由3个线圈。 相数越多&#xff0c;步进角越小。所有精度就越高。步进电机转速越快&…

经验分享:大数据多头借贷风险对自身的不利影响?

在现代金融体系中&#xff0c;大数据技术的应用使得多头借贷成为一种普遍现象。多头借贷指的是个人或企业在短时间内同时或近期内申请多笔贷款或信用产品&#xff0c;这种行为可能带来一系列财务和信用风险。以下是大数据多头借贷风险对个人自身可能产生的不利影响&#xff1a;…

花了2小时,自己做了一个出入库系统

出入库管理是库存管理工作的重中之重&#xff0c;但在刚做产品出入库时&#xff0c;我可是踩了不少坑—— 库存管理不精确仓库作业效率低下货物追踪困难报表统计繁琐... 后来我就自学了下&#xff0c;花了两个小时自己做了一套织信出入库管理系统&#xff0c;全程没有敲一个代…

帆软10.0报表部署到正式环境后,不显示数据集的数据。

修改正式环境的数据连接 1&#xff09;数据连接的「编码」类型设置为「默认」。 2&#xff09;数据连接的「数据连接URL」后加后缀&#xff0c;如下图所示。格式为&#xff1a; jdbc:mysql://hostname:port/database?generateSimpleParameterMetadatatrue&useUnicodetru…

运维工程师,刚入职一个之前没有运维的公司,该做什么?

运维工程师&#xff0c;刚入职一个之前没有运维的公司&#xff0c;该做什么&#xff1f; 下面内容&#xff0c;只谈技术工作方面的&#xff0c;人情世故的方面自己体会吧。。。。 前言 写这个&#xff0c;主要是有一个朋友&#xff0c;也是运维工程师&#xff0c;五年以上运…

【STL】之 list 使用方法和模拟实现

目录 前言&#xff1a; list是什么&#xff1f; 节点类 迭代器类&#xff1a; list类 list的迭代器失效问题 前言&#xff1a; 之前我们分别手撕了string类和vector类&#xff0c;今天我们来跟list类打打交道~ list是什么&#xff1f; 通过查c文档可知&#xff0c;list…