【从零开始学习JAVA | 第九篇】字符串综合练习

news2024/9/23 9:22:10

  前言:

        在前一篇我们学习了String类以及两个接口函数,今天我们将利用昨天的知识以及讲解新的方法进行几个实战操作,以此来巩固我们的所学内容。

1.实现用户登录,对用户输入的密码进行验证 

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

讲解:在上一张我们已经证明过了:赋值的字符串不可以直接和键盘录入的字符串进行比较,要用equals函数进行比较。

public class string01 {
    public static void main(String[] args) {
        //先确定好正确的账户和密码
        String account="12345";
        String key="56789";
        //进行键盘录入密码,先导包
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入账户名");
        String inputaccount=sc.next();
        System.out.println("请输入密码");
        String inputkey=sc.next();

        if(account.equals(inputaccount)&&key.equals(inputkey))
        {
            System.out.println("输入密码正确,欢迎进入系统");
        }
        else
        {
            System.out.println("输入用户名或者密码有错,请仔细检查");
        }

    }
}

2.遍历字符串以及统计字符个数

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

使用方法:

  • public char charAt(int index);根据索引返回字符。
  • public int length();返回此字符串的长度。
  • 数组的长度:数组.length。
  • 字符串的长度:字符串对象.length()。
import java.util.Scanner;
public class string02 {
    public static void main(String[] args) {
        //从键盘录入字符串
        Scanner sc= new Scanner(System.in);
        String s1= sc.next();
        //进行遍历
        for(int i=0;i<s1.length();i++)
        {
            System.out.println(s1.charAt(i));
        }
    }
}

 3.拼接字符串

需求:定义一个数组,把这个数组拼接成为一个字符串

import java.util.Scanner;

public class srting {
    public static void main(String[] args) {
       int []arr={1,2,3,4};

        System.out.println(   arradd(arr));

     }
     public static String arradd(int [] arr)
     {
         if(arr==null)
         {
             return "";
         }
         if(arr.length==0)
         {
             return "[]";
         }
         String result ="[";
         for (int i = 0; i < arr.length; i++) {
             result+=arr[i];
         }
         result+="]";
         return result;
     }

}

4.手机号屏蔽:

需求:将手机号进行中间屏蔽,将123456789替换为123 *** 789这种类型

调用方法:

  • String substring (int begindex,int endindex);截取字符串
  • 注意点:包头不包尾,包左不包右。
import java.util.Scanner;
public class string03 {
    public static void main(String[] args) {
        System.out.println("请输入一个手机号码");
        Scanner sc=new Scanner(System.in);
        String s1=sc.next();
        
            //截取前三位
         String head1=s1.substring(0,3);
            //截取后三位
        String end2 =s1.substring(7);
        //拼接
        String result =head1+"******"+end2;
        
        //5.打印
   
        System.out.println(result);
    }
}

易错点:

字符串作为编程中常用的基本数据类型之一,使用时常常会出现各种错误,比较常见的包括以下几个方面:

1. 字符编码问题:不同编码方式会导致字符集的不一致,当进行字符串比较、截取等操作时,容易出现错误,比如使用默认的ASCII编码处理中文字符串就会出现错误。

2. 字符串拼接问题:字符串拼接时,需要注意每个字符串的起始和结束位置,以及拼接的顺序,否则可能会导致字符串错乱,或者产生额外的空格或符号。

3. 字符串截取问题:在截取字符串时,需要确保字符串的起始和结束位置的正确性,否则可能出现字符串长度不足、越界等错误。

4. 字符串匹配问题:在进行字符串匹配时,需要考虑正则表达式的规则和特殊字符的转义,否则可能出现匹配错误。

5. 字符串转换问题:需要注意类型转换的方式和过程,比如将字符串转换为数字时,需要判断字符串是否合法,并选择正确的转换方式。

6. 字符串为空的情况:在使用字符串的时候,需要对空字符串做出一些判断和处理,否则可能会出现空指针异常等错误。

   总结:

字符串类已经为我们提供了丰富高效的类来进行各种相关操作,我们应该尽量掌握各种常见的字符串操作,这样才可以提高我们的代码编写效率。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

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

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

相关文章

31 linux 中 用户栈帧 -> 内核栈帧

前言 比如 我们之前调试的 glibc 相关的库函数 glibc 相关是属于用户程序, 调用 操作系统的系统调用的时候, 会是 怎么样的一个情况呢? 系统调用 会有对应的系统栈帧来处理 系统调用的相关函数调用的堆栈支持 测试用例 我们这里主要是以 printf 中会分配缓冲区调用 ma…

NVIDIA Thrust教程

NVIDIA Thrust教程 Thrust 的 API 参考指南&#xff0c;CUDA C 模板库。 1.简介 Thrust 是基于标准模板库 (STL) 的 CUDA 的 C 模板库。 Thrust 允许您通过与 CUDA C 完全互操作的高级接口&#xff0c;以最少的编程工作实现高性能并行应用程序。 Thrust 提供了丰富的数据并…

windows自带的linux系统,从C盘迁移到D盘

1. 查看当前wsl版本和 运行状态 wsl -l -v wsl --list, -l 用于列出分发 本人电脑装的是Ubuntu-18.04&#xff0c;正在运行&#xff0c;版本1 2. 在D盘建linux目录&#xff0c;打包Ubuntu-18.04&#xff0c;导入到D盘的linux目录 wsl --export <DistributionName> &l…

9个最实用的PS插件盘点!

因为个人原因&#xff0c;对PS的插件用了不下 100 款&#xff0c;其中有好有坏&#xff0c;有优有劣&#xff0c;大浪淘沙&#xff0c;优胜劣汰&#xff0c;现在整理了自己觉得不错的 PS 插件。 1、Alien Skin Blow Up 3 for mac Blow Up 3 mac 版是 Macos 上一款 PS 图像无损放…

Apache Zeppelin系列教程第十篇——SQL Debug In Zeppelin

SQL Debug介绍 首先介绍下什么是SQL Debug&#xff1f; 但是经常有这样一个需求&#xff0c;一大段sql 跑出来之后&#xff0c;发现不是自己想要的结果&#xff1f;比如&#xff1a; demo 1: select id,name from ( select id,name from table1 union all select id,name fr…

web漏洞之文件上传漏洞

文章目录 一、漏洞原因二、漏洞危害三、漏洞利用1.三个条件2.利用方式3.绕过方式a.绕过JS验证① BP绕过② F12绕过③ 菜刀上传实操 b.绕过MIME-Type验证c.绕过黑名单验证① 直接修改后缀名绕过② htaccess绕过(有拦截)③ 大小写绕过(有拦截)④ 空格绕过⑤ .号绕过⑥ 特…

技术改变生活,开发者必须掌握这些技能

技术改变生活&#xff0c;开发者必须掌握这些技能 一、前言二、背景三、开发者必须掌握这些技能1. 语言与编程2. 数据结构与算法3. 开发框架与工具4. 应用开发与测试5. 团队协作与沟通 一、前言 随着科技的不断进步和发展&#xff0c;我们的生活方式也在不断地变化。互联网、智…

Session覆盖测试-业务安全测试实操(19)

弱Token设计缺陷测试,Session覆盖测试 Session覆盖测试 测试原理和方法 找回密码逻辑漏洞测试中也会遇到参数不可控的情况,比如要修改的用户名或者绑定的手机号无法在提交参数时修改,服务端通过读取当前session会话来判断要修改密码的账号,这种情况下能否对Session中的内容做…

【架构】洋葱架构

文章目录 前言一、为什么要用洋葱架构&#xff1f;二、原则2.1、依赖性2.2、数据封装2.3、关注点的分离2.4、耦合性 三、洋葱架构层四、领域模型/实体五、领域服务六、应用服务七、基础设施服务八、可观察性服务九、测试策略十、微服务十一、模块化与打包十二、框架、客户端和驱…

基于Java个人博客网站设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

基于Java游戏攻略网站设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

【Unityc#专题篇】之c#进阶篇

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

【C#进阶】C# 索引器

序号系列文章13【C#进阶】C# 特性14【C#进阶】C# 反射15【C#进阶】C# 属性 文章目录 前言1、索引器的概念2、索引器的定义3、索引器的基本使用4、索引器的重载5、接口中的索引器6、属性和索引器之间的比较7、索引器的适用场景结语 前言 &#x1f342; Hello大家好啊&#xff0c…

基于Java会员管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

从零开始 Spring Boot 46:@Lookup

从零开始 Spring Boot 46&#xff1a;Lookup 图源&#xff1a;简书 (jianshu.com) 在前文中&#xff0c;我介绍了 Spring Bean 的作用域&#xff08;Scope&#xff09;&#xff0c;且讨论了将一个短生命周期的 bean &#xff08;比如request作用域的 bean&#xff09;注入到长…

事务小总结

事务定义 是一个数据库操作序列&#xff0c;这些操作要么全部执行,要么全部不执行&#xff0c;是一个不可分割的工作&#xff08;程序执行&#xff09;单元。事务由事务开始与事务结束之间执行的全部数据库操作组成。 事务特性 原子性(Atomicity)一致性(Consistency)隔离性(…

Linux下 文件删除但是空间未被释放 或者 磁盘已满但找不到对应的大文件 的解决方案

Linux下文件删除但是空间未被释放的解决方案 前言1. 查看当前磁盘占用情况2. 模拟进程占用3. 执行rm -rf 命令删除文件4. 查看被删除但是未释放空间的文件5. 执行清空文件操作 前言 linux磁盘空间已满&#xff0c;手动rm -rf 删除了大文件之后&#xff0c;df -h 查看一下发现空…

操作系统第四章练习题

第一部分 教材习题&#xff08;P152&#xff09; 1、为什么要配置层次式存储器&#xff1f; 设置多个存储器能够使存储器两头的硬件能并行工作;采用多级存储系统,专门是Cache 技术,是减轻存储器带宽对系统性能影响的最佳结构方案;在微处置机内部设置各类缓冲存储器,减轻对存储…

【Android -- 面试】Android 面试题集锦(Java 基础)

Java 基础 1、Java 的类加载过程 jvm 将 .class 类文件信息加载到内存并解析成对应的 class 对象的过程&#xff0c; 注意&#xff1a;jvm 并不是一开始就把所有的类加载进内存中&#xff0c;只是在第一次遇到某个需要运行的类才会加载&#xff0c;并且只加载一次 主要分为三…

【ARMv8 SIMD和浮点指令编程】NEON 比较指令——比较的方方面面

比较指令是常见的一类指令,NEON 中当然也排除,下面涉及比较和测试位两类指令。 1 CMEQ (register) 按位比较相等(向量)。该指令将第一个源 SIMD&FP 寄存器中的每个向量元素与第二个源 SIMD&FP 寄存器中的相应向量元素进行比较,如果比较相等,则将目标 SIMD&…