关于String的一些常用方法的编程练习题

2024-09-01 22:44

本文主要是介绍关于String的一些常用方法的编程练习题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

    public static void main(String[] args) {/*** 思路分析* 1.编写方法public static String reverse(String str, int start, int end) {* 2.把String 转成 char[],因为char[] 的元素是可以交换的* 3.代码实现*/String s = "abcdef";System.out.println("交换前================");System.out.println(s);System.out.println("交换后=================");try {s = reverse(s, 1, 4);} catch (Exception e) {System.out.println(e.getMessage());return;}System.out.println(s);}public static String reverse(String str, int start, int end) {//对输入的参数做一个验证//这里分享一个编程技巧//1.凡是涉及到错误校验情况的,可以先写出正确的情况(因为容易想到)//2.然后整体再取反,即可完成错误校验的代码部分if(!(str!=null && start<end && start >= 0 && end <str.length())){throw new RuntimeException("参数不正确");}char[] sArr = str.toCharArray();char temp = ' ';for (int i = start,j= end; i < j; i++,j--) {//注意边界条件的设置temp = sArr[i];//辅助变量sArr[i] = sArr[j];sArr[j] = temp;}//注意不能返回str,因为String是被final修饰的,所以要重新构建
//        String res = sArr.toString();这样是不行的哈return new String(sArr);}//输出结果如下,如果输入的参数正确的话
交换前================
abcdef
交换后=================
aedcbf
//如果输入的参数有误,则会输出
交换前================
abcdef
交换后=================
参数不正确

在这里插入图片描述

public class Journey {public static void main(String[] args) {String username = "kere";String passward = "123456";String email = "123@qq.com";try {userRegister(username,passward,email);//如果没有抛出异常,说明注册成功了System.out.println("恭喜你 注册成功!!!");} catch (Exception e) {System.out.println(e.getMessage());}}public static void userRegister(String name,String pwd,String email){//再升级下,多加些校验机制if(!(name!=null&&pwd!=null&&email!=null)){throw new RuntimeException("参数不能为空哟!!!");}//过关//用户名长度为2、3、4int nameLength = name.length();if(!(nameLength>=2&&nameLength<5)){throw new RuntimeException("用户名长度不正确!!!");}//第二关,密码长度为6,要求全是数字if(!(pwd.length()==6&&digital(pwd))){throw new RuntimeException("密码长度不正确或密码中包含有非法字符");}//第三关,@在.之前int index1 = email.indexOf("@");int index2 = email.indexOf(".");if(!(index1>-1 && index1<index2)){throw new RuntimeException("邮箱格式错误");}}public static boolean digital(String pwd){char[] pwdArr = pwd.toCharArray();for (int i = 0; i < pwdArr.length; i++) {if(!(pwdArr[i]<'9'&&pwdArr[i]>'0')){return false;}}return true;}}

在这里插入图片描述

public class Journey {public static void main(String[] args) {//以Joe, Dss .K的形式打印出来  其中.K 是中间单词的首字母大写String name = "Dss kerwin Joe";printName(name);}//编写方法,完成输出格式要求的字符串/*** 思路分析:* 1.对输入的字符串进行分割split("")* 2.对得到的String[] 进行格式化String.format()* 3.对输入的字符串进行校验即可*/public static void printName(String str) {if (str == null) {System.out.println("str 不能为空哟");return;}String[] s = str.split(" ");if (s.length != 3) {//这种容易想到的,就不要刻意去照搬之前的校验技巧了,之前的校验技巧是情况复杂时,先写出正确的,最后整体取反System.out.println("输入的名字格式不正确!!!");return;}//格式化,使之按照Joe, Dss .K 输出String formatRes = String.format("%s, %s .%c", s[2], s[0], s[1].toUpperCase().charAt(0));System.out.println(formatRes);}
}

在这里插入图片描述

public class Journey {public static void main(String[] args) {String youth = "ABjso340xW";countStr(youth);System.out.println("=============");String ess = "csijdcbsljdbv23bux899AAA";countStr(ess);System.out.println("=======================");String ker = null;try {countStr(ker);} catch (Exception e) {System.out.println(e.getMessage());}}public static void countStr(String str){if(str==null){throw new RuntimeException("给定的参数不能为空哟!!!");}char[] youthAAA = str.toCharArray();int NumCount = 0;int UpperCount = 0;int LowerCount = 0;for(char i : youthAAA){if(i<='9'&&i>='0'){NumCount++;}else if(i<='z'&&i>='a'){LowerCount++;}else if(i<='Z'&&i>='A'){UpperCount++;}}System.out.println("字符串中有"+NumCount+"个数字");System.out.println("字符串中有"+UpperCount+"个大写字母");System.out.println("字符串中有"+LowerCount+"个小写字母");}
}//输出结果
字符串中有3个数字
字符串中有3个大写字母
字符串中有4个小写字母
=============
字符串中有5个数字
字符串中有3个大写字母
字符串中有16个小写字母
=======================
给定的参数不能为空哟!!!

在这里插入图片描述

public class Journey {public static void main(String[] args) {String s1 = "hspedu";Animal a = new Animal(s1);Animal b = new Animal(s1);System.out.println(a==b);//false,因为此时的引用a和b各自指向堆中的不同的对象System.out.println(a.equals(b));//此处调用的是Animal类的equals方法,其没有重写,//所以比较的还是地址,so return falseSystem.out.println(a.name==b.name);//true,两个引用的name属性都是指向池中的“hspedu”的,so trueString s4 = new String("hspedu");String s5 = "hspedu";System.out.println(s1==s4);//false, 因为s1指向常量池中的hspedu,而s4是指向堆中的对象的,//其对象中的value数组指向常量池中的hspeduSystem.out.println(s4==s5);//false, 这里也是一样,s5直接指向池中的hspedu的,所以return falseString t1 = "hello" + s1;//此处涉及变量,则会先创建一个StringBuilder,然后把“hello”给append进去,//再把s1对应的字符串内容加进去,//最后给它返回个堆中的String给t1String t2 = "hellohspedu";//t2直接指向上一步创建好的常量池中的“hellohspedu”System.out.println(t1.intern()==t2);//true,注意,此中的t1.intern()是指向堆的,//但返回t1字符串在常量池中的地址,即常量池中的“hellohspedu”//t2本来就是指向常量池中的hellohspedu,所以,最后结果返回的是true       //intern()就是直接看池中的字符串}
}
class Animal{String name;public Animal(String name) {this.name = name;}
}

在这里插入图片描述

这篇关于关于String的一些常用方法的编程练习题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128252

相关文章

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

sql语句字段截取方法

《sql语句字段截取方法》在MySQL中,使用SUBSTRING函数可以实现字段截取,下面给大家分享sql语句字段截取方法,感兴趣的朋友一起看看吧... 目录sql语句字段截取sql 截取表中指定字段sql语句字段截取1、在mysql中,使用SUBSTRING函数可以实现字段截取。例如,要截取一个字符串字

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

Java中的StringUtils.isBlank()方法解读

《Java中的StringUtils.isBlank()方法解读》:本文主要介绍Java中的StringUtils.isBlank()方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录所在库及依赖引入方法签名方法功能示例代码代码解释与其他方法的对比总结StringUtils.isBl

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww