java练习题之String方法运用

应用知识点:​​​​​​String类

1:(String 类)仔细阅读以下代码段:

String s = "hello";

String t="hello";

char[] c = {'h','e','l','l','o'};

2:下列选项输出结果为false 的语句是()

System.out.println( s.euqals( t ) );

System.out.println( t.equals( c ) );

System.out.println( s==t );

System.out.println( t.equals( new String(c) ) );

System.out.println( t.equals( new String("hello")) );

3:(String 类)关于 java.lang.String 类,以下描述正确的一项是()(看源码)

String 类是 final 类故不可以继承。 空间不可变吧

String 类是 final 类故可以继承。

String 类不是 final 类故不可以继承。

String 类不是 final 类故可以继承。

4:(String 类)应用程序的 main 方法中有以下语句,则输出的结果是

A. false B. true C. 1 D. 0

5:(String 类)已知String 对象s=”abcdefg”,则s.substring(2,5)的返回值为( )

 A.”bcde” B.”cde” C.”cdef” D.”def”

6:(String 类)已知s 为一个String 对象,s=”abcdefg”,则s.charAt(1)的返回值为( )。

A.a B.b C.f D.g

 7:接着实现昨天的题,定义一个person类,要求如下:

    ① 属性:身份证号,姓名,性别,年龄,户籍,出生日期(String类型,"1998-09-09")

② 属性私有化,提供get/set,构造方法

    ③ 介绍格式:(toString)

   姓名+户籍+年龄

    ④ 提供对象比较equals方法,只要身份证号+姓名相同就认为对象相等

    ⑤ 写一个测试类,定义一个Person数组,创建多个Person对象存储在数组中,

   i.  打印输出所有Person对象的信息

   ii. 用控制台输入一个Person信息:(注意:跟昨天的输入有区别!!!)

 例如:"370828199902145066-刘航-男-58-北京-1955/01/01"

       判断数组中是否存在和此对象相等的对象(身份证号+姓名相同就认为对象相等)

   iii. 判断Person数组中,名字是否有包含"胡"的联系人,有,打印信息.

   iv. 任意输入一个姓 ,判断数组中是否存在有此姓的Person对象.

   v.输出5月份出生的学生信息

package com.by.homework2;public class Person{private String idCard;private String name;private String sex;private int age;private String location;private String birthday;public Person() {}public Person(String idCard, String name, String sex, int age, String location, String birthday) {this.idCard = idCard;this.name = name;this.sex = sex;this.age = age;this.location = location;this.birthday = birthday;}public String getIdCard() {return idCard;}public void setIdCard(String idCard) {this.idCard = idCard;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getLocation() {return location;}public void setLocation(String location) {this.location = location;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}/* public String toString(){return "姓名:"+name+",户籍:"+location+",年龄:"+age;}*/@Overridepublic String toString() {return "姓名:"+name+",户籍:"+location+",年龄:"+age;}public boolean equals(Object o){if(this==o){return true;}if (this.getClass()!=o.getClass()||o.getClass()==null){return false;}Person person=(Person) o;return this.idCard.equals(person.idCard)&&this.name.equals(person.name);}
}package com.by.homework2;import java.util.Scanner;public class PersonTest {public static void main(String[] args) {Person[]people={new Person("1307262000","张三","男",18,"河北省","2000-01-01"),new Person("1307262001","李四","女",19,"河南省","2000-05-01"),new Person("1307262002","王五","男",20,"湖北省","2000-03-01"),new Person("123456789","胡麻子","男",21,"湖南","2000-11-11")};Scanner sc=new Scanner(System.in);for (int i = 0; i < people.length; i++) {System.out.println(people[i]);}//查询胡姓人boolean boo2=false;for (int i = 0; i < people.length; i++) {if(people[i].getName().indexOf("胡")==0){System.out.println("有胡姓叫:"+people[i].getName());boo2=true;}}if(!boo2){System.out.println("没有胡姓人");}char[]chars;for (int i = 0; i < people.length; i++) {chars=people[i].getName().toCharArray();}/*for (int i = 0; i < chars.length; i++) {chars[0]}*///查询是否有该姓的名字System.out.println("任意输入一个姓,看是否有");String name1=sc.next();char []chars1=name1.toCharArray();String str3= String.valueOf(chars1[0]);boolean boo3=false;for (int i=0;i< people.length;i++){boolean boo4=people[i].getName().contains(str3);if (boo4){System.out.println("有姓名为::"+people[i]);boo3=true;}}if (!boo3){System.out.println("无相等的");}for (int i = 0; i < people.length; i++) {if(people[i].getBirthday().indexOf("5")==6){System.out.println(people[i]+",生日为:"+people[i].getBirthday());}}for (int i = 0; i < people.length; i++) {String str=String.valueOf(people[i].getBirthday().charAt(6));if(str.equals("5")){System.out.println(people[i]+",生日为:"+people[i].getBirthday());}}System.out.println("请输入身份证号");String idCard=sc.next();System.out.println("请输入姓名");String name=sc.next();System.out.println("请输入性别");String sex=sc.next();System.out.println("请输入年龄");int age=sc.nextInt();System.out.println("请输入籍贯");String location=sc.next();System.out.println("请输入出生日期");String birthday=sc.next();Person person=new Person(idCard,name,sex,age,location,birthday);String str=idCard+"-"+name+"-"+sex+"-"+age+"-"+location+"-"+birthday;System.out.println(str);String []str1=str.split("-");boolean boo1=false;for (int i = 0; i < people.length; i++) {if (str1[0].equals(people[i].getIdCard())&&str1[1].equals(people[i].getName())){System.out.println("相等");boo1=true;}}if (!boo1){System.out.println("不相等");}//输入一个完整的信息System.out.println("请输入信息");String infor=sc.next();String []strings=infor.split("-");Person person1=new Person(strings[0],strings[1],strings[2],Integer.parseInt(strings[3]),strings[4],strings[5]);boolean boo=false;for (int i = 0; i < people.length; i++) {if(person1.equals(people[i])){System.out.println("相等的为:"+people[i]);boo=true;}}if(!boo){System.out.println("没有相等的");}}
}

8:获取“Wangxx@zparkhr.com.cn”中的用户名“Wangxx”

String s3="Wangxx@zparkhr.com.cn";
System.out.println(s3.substring(0,6));

9:验证“Wanxxj@zparkhr.com.cn”是否为一个合法邮箱

合法邮箱要求:

1、有“@”和“.”符号

2、“.”在“@”后面

package com.by.homework2;public class ContainAndIndexOf {public static void main(String[] args) {String str="Wanxxj@zparkhr.com.cn";if (str.contains("@")&&str.contains(".")){if (str.indexOf(".")>str.indexOf("@")){System.out.println(str+":是一个合法邮箱");}}}
}

10:控制台输入格式为“张三-18-男-3000.0”的字符串5个,解析为工人对象分别对应为名字,年龄,性别,工资的属性值,并存入工人数组

package com.by.homework2;import java.util.Scanner;public class Worker {private String name;private int age;private String sex;private double salary;public Worker() {}public Worker(String name, int age, String sex, double salary) {this.name = name;this.age = age;this.sex = sex;this.salary = salary;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}@Overridepublic String toString() {return "Worker{" +"name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +", salary=" + salary +'}';}
}class WorkerTest{public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入员工信息");String str=sc.next();String []strings=str.split("-");String name = null;int age=0;String sex=null;double salary = 0;Worker worker1 = null;Worker worker2 = null;Worker worker3 = null;Worker worker4 = null;Worker worker5 = null;int num=0;//zhang-18-nan-1000-li-19-nan-2000-wang-20-nan-3000-zhao-21-nan-4000-qian-22-nan-5000for (int i=1;i<=5;i++) {name=strings[num];age=Integer.parseInt(strings[1+num]);sex=strings[2+num];salary=Double.parseDouble(strings[3+num]);System.out.println(name+age+sex+salary);if (i==1){worker1=new Worker(name,age,sex,salary);}if (i==2){worker2=new Worker(name,age,sex,salary);}if (i==3){worker3=new Worker(name,age,sex,salary);}if (i==4){worker4=new Worker(name,age,sex,salary);}if (i==5){worker5=new Worker(name,age,sex,salary);}
//            System.out.println();num+=4;}Worker[] workers={worker1,worker2,worker3,worker4,worker5};for (int i = 0; i < workers.length; i++) {System.out.println(workers[i].toString());}}
}

请输入员工信息

zhang-18-nan-1000-li-19-nan-2000-wang-20-nan-3000-zhao-21-nan-4000-qian-22-nan-5000

zhang18nan1000.0

li19nan2000.0

wang20nan3000.0

zhao21nan4000.0

qian22nan5000.0

Worker{name='zhang', age=18, sex='nan', salary=1000.0}

Worker{name='li', age=19, sex='nan', salary=2000.0}

Worker{name='wang', age=20, sex='nan', salary=3000.0}

Worker{name='zhao', age=21, sex='nan', salary=4000.0}

Worker{name='qian', age=22, sex='nan', salary=5000.0}

Process finished with exit code 0

11:银行系统需要登记用户的身份证号,为了防止用户输入身份证号的数位有误,我们应该使用什么方法?

.chatAt(17)!=0 && .charAt(17+) ==0

12:给定一个由数字组成的字符串

如:“376472364760183013010832“;

统计每个数字出现的次数

String s="376472364760183013010832";
byte[] s1=s.getBytes();
int sum=0;
for (int i = 0; i < s1.length; i++) {for (int j = 0; j <= s1.length-1; j++) {if(s1[i]==s1[i+1]){sum++;}}}System.out.println(s1[i]+"出现的次数是"+sum);}

13:将随机获取的UUID(含义是通用唯一识别码)中的“-”去掉。

提示:java.util.UUID.randomUUID().toString()//可以获取随机UUID

格式:e6c57443-1667-4d75-98f6-a8863d95e58f

package com.by.homework2;
import java.util.UUID;
public class Uuid {public static void main(String[] args) {String uuid=UUID.randomUUID().toString();System.out.println(uuid);String []str=uuid.split("-");for (int i = 0; i < str.length; i++) {System.out.print(str[i]);}}}

14:在给定字符串“ABDEFGabdefghijklmnMNKJ1234567"中随机获取4个字符,并使用随机获取的4个字符,使用StringBuilder拼接成字符串(随机获取到4个字符串中不可以出现重复字符,忽略大小写!如果当前随机内容已经出现,则重新随机本次)

提示:创建随机数对象java.util.Random.

java.util.Random r=new java.util.Random();

random.next(100);//可以获取到0-99中任意一个随机数。

获取到的随机数作为字符串的字符下标进行取值。

package com.by.homework2;import java.util.Random;public class RandomAppends {public static void main(String[] args) {String input = "ABDEFGabdefghijklmnMNKJ1234567";Random random = new Random();StringBuilder sb = new StringBuilder();while (sb.length() < 4) {int index = random.nextInt(input.length());char c = input.charAt(index);String str=String.valueOf(c);if (!sb.toString().contains(str)) {sb.append(c);}}System.out.println(sb.toString());}
}

15:将一个字符串进行反转。将字符串中指定部分进行反转。比如"abcdefg",反转子串"cdef",转为"abfedcg"

package com.by.homework2;import java.util.Scanner;public class Roolback {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("请输入字符串");String str=scanner.next();System.out.println("反转其中内容");String str1=scanner.next();int num=str.indexOf(str1);char []chars=str.toCharArray();char a=0;char b=0;for (int i = 0; i < chars.length; i++) {if (i==num){a=chars[i];b=chars[i+1];chars[i]=chars[i+str1.length()-1];chars[i+1]=chars[i+str1.length()-2];chars[i+str1.length()-1]=a;chars[i+str1.length()-2]=b;}System.out.print(chars[i]);}/* String a="abcdefg";String b="edcb";char[]cs=b.toCharArray();String c="";for (int i = cs.length-1; i >=0; i--) {c+=cs[i];}System.out.println(a.replace(b,c));*/}
}

请输入字符串

abcdefg

反转其中内容

cdef

abfedcg

Process finished with exit code 0

16:使用方法判断字符串“zxcvbnmalskqpwoeiruty156789~!@#$%^&*()”和字符串“!^#*145agtkdbm”中字符重复的个数

package com.by.homework2;public class Test15 {public static void main(String[] args) {String str="zxcvbnmalskqpwoeiruty156789~!@#$%^&*()";String str1="!^#*145agtkdbm";char []c=str.toCharArray();char []c1=str1.toCharArray();int num=0;for (int i = 0; i < c.length; i++) {for (int i1 = 0; i1 < c1.length; i1++) {if (String.valueOf(c[i]).equals(String.valueOf(c1[i1]))){num++;}}}System.out.println(num);}
}

  

17:以下是一段歌词,请从这段歌词中统计出“朋友”出现的次数及每次的下标。

  "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";

package com.by.homework2;public class Test16 {public static void main(String[] args) {String str = "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";int count = 0;int index = 0;while ((index = str.indexOf("朋友", index)) != -1) {count++;index++; // Move the index to the next character after "朋友"}System.out.println("朋友出现的次数: " + count);}
}

18:编写敏感词过滤程序 
   说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。

实现:让用户随机输入一段话,如果出现上述的敏感词汇,则用“***”对其进行替换

package com.by.homework2;import java.util.Scanner;public class Test17 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入一段话,我来输出");String str=sc.next();String []strings={"性","色情","爆炸","恐怖","枪","军火"};String str2="****";for (int i = 0; i < strings.length; i++) {if (str.contains(strings[i])){str.replace(strings[i],str2);System.out.println(str);}}

19:编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出

package com.by.homework2;import java.util.Scanner;public class Test18 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入:");String str=sc.next();String str1;String str2;int num=0;byte[]bytes=str.getBytes();char []chars=new char[bytes.length];for (int i = 0; i < bytes.length; i++) {if(bytes[i]>=65&&bytes[i]<=90){chars[i]= (char) bytes[i];num++;}if(bytes[i]>=97&&bytes[i]<=122){chars[i+num]= (char) bytes[i];}}for (int j = 0; j < chars.length; j++) {System.out.print(chars[j]);}}
}

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

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

相关文章

Leetcode2962. 统计最大元素出现至少 K 次的子数组

Every day a Leetcode 题目来源&#xff1a;2962. 统计最大元素出现至少 K 次的子数组 解法1&#xff1a;滑动窗口 算法如下&#xff1a; 设 mx max⁡(nums)。右端点 right 从左到右遍历 nums。遍历到元素 xnums[right] 时&#xff0c;如果 xmx&#xff0c;就把计数器 co…

Docker安装【学习Docker(十)】Docker SQLServer的安装与卸载、基本命令

文章目录 1. 安装SQL Server拉取镜像运行容器 2. 卸载SQL Server3. 开放端口4. 常用命令5. 使用Navicat Premium连接 1. 安装SQL Server 拉取镜像 sudo docker pull mcr.microsoft.com/mssql/server:2017-latest运行容器 创建挂载点目录 mkdir /home/sqlserver_data运行容器…

漏洞复现--天融信TOPSEC两处远程命令执行

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

【Nodejs】基于node http模块的博客demo代码实现

目录 package.json www.js db.js app.js routes/blog.js controllers/blog.js mysql.js responseModel.js 无开发&#xff0c;不安全。 这个demo项目实现了用Promise异步处理http的GET和POST请求&#xff0c;通过mysql的api实现了博客增删改查功能&#xff0c;但因没有…

【KingbaseES】实现MySql函数WEERDAY

CREATE OR REPLACE FUNCTION weekday(date_val date) RETURNS integer AS $$ BEGIN RETURN EXTRACT(ISODOW FROM date_val); END; $$ LANGUAGE plpgsql IMMUTABLE;

智邦国际ERP系统 SQL注入漏洞复现

0x01 产品简介 北京智邦国际软件技术有限公司的ERP系统是一种集成化的企业资源计划&#xff08;Enterprise Resource Planning&#xff0c;简称ERP&#xff09;解决方案&#xff0c;旨在帮助企业实现高效的运营管理和资源优化。 0x02 漏洞概述 智邦国际ERP系统 GetPersonalS…

鸿蒙原生应用/元服务开发-发布进度条类型通知

进度条通知也是常见的通知类型&#xff0c;主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板&#xff0c;发布通知应用设置好进度条模板的属性值&#xff0c;如模板名、模板数据&#xff0c;通过通知子系统发送到通知栏显示。 目前系统模板仅支持进度条模板&a…

USB 转 TTL线直接读取DS18B20

简介 使用USB转TTL线直接读取DS18B20 温度。 电路图 绘制图 实物图 软件 Download 1-Wire/iButton Drivers for Windows 操作 所有的线路连接好之后将 USB 转 TTL线接到PC上; 安装软件 Download 1-Wire/iButton Drivers for Windows 并打开 软件打开之后先选择串口后 …

自动驾驶状态观测1-坡度估计

背景 自动驾驶坡度对纵向的跟踪精度和体感都有一定程度的影响。行车场景虽然一般搭载了GPS和IMU设备&#xff0c;但pitch角一般不准&#xff0c;加速度也存在波动大的特点。泊车场景一般在室内地库&#xff0c;受GPS信号遮挡影响&#xff0c;一般无法获取高程和坡度。搭载昂贵…

“安全相伴 快乐同行”儿童安全教育主题活动

2023年12月30日在海南成美公益基金会的支持下&#xff0c;沈阳市爱梦成真公益发展中心联合庄河市大树互助志愿服务中心举办“2023-2024年度阳光亲人项目”——“安全相伴快乐同行”儿童安全教育主题活动&#xff0c;参与本次活动的领导及嘉宾有&#xff1a;庄河市青年志愿者协会…

计算机网络(2)

计算机网络&#xff08;2&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网&#xff08;2&#xff09;分组交换网中的时延、丢包和吞吐量时延丢包吞吐量总结 协议层次及其服务模型模型类型OSI模型分析TCP/IP模型分析 追溯历史 小程一言 我…

UE5 C++(十一)— 碰撞检测

文章目录 代理绑定BeginOverlap和EndOverlapHit事件的代理绑定碰撞设置 代理绑定BeginOverlap和EndOverlap 首先&#xff0c;创建自定义ActorC类 MyCustomActor 添加碰撞组件 #include "Components/BoxComponent.h"public:UPROPERTY(VisibleAnywhere, BlueprintRea…

Linux配置Acado

如果需要使用acado的matlab接口&#xff0c;请移步&#xff1a;Linux Matlab配置Acado 首先&#xff0c;安装必要的软件包&#xff1a; sudo apt-get install gcc g cmake git gnuplot doxygen graphviz在自定义目录下&#xff0c;下载源码 git clone https://github.com/ac…

windows+django+nginx部署静态资源文件

平台&#xff1a;windows python&#xff1a;3.10.0 django&#xff1a;4.0.8 nginx&#xff1a;1.24.0 背景 开发阶段采用前后端分离模式&#xff0c;现在要将项目部署到工控机上&#xff0c;把前端项目编译出来的静态文件放到后端项目中进行一体化部署&#xff0c;且不修改…

python打包exe

打包python绘制玫瑰花_python生成玫瑰花-CSDN博客 这个链接的程序 隐藏 控制台窗口&#xff08;如果你的程序是GUI&#xff0c;不是控制台应用可以选用&#xff0c;比如本案例的送你玫瑰花就是白底的&#xff09; 报错的话&#xff0c;可能没有pyinstaller这个库 参考&#x…

【KingbaseES】实现MySql函数Field

CREATE OR REPLACE FUNCTION field(value TEXT, VARIADIC arr TEXT[]) RETURNS INT AS $$ DECLAREi INT; BEGINFOR i IN 1 .. array_length(arr, 1) LOOPIF arr[i] value THENRETURN i;END IF;END LOOP;RETURN 0; END; $$ LANGUAGE plpgsql IMMUTABLE;

Apache的网页优化

掌握Apache网页压缩掌握Apache网页缓存掌握Apache隐藏版本信息掌握Apache网页防盗链 1.1 网页压缩 在使用 Apache 作为 Web 服务器的过程中&#xff0c;只有对 Apache 服务器进行适当的优化配 置&#xff0c;才能让 Apache 发挥出更好的性能。反过来说&#xff0c;如果 Apache…

项目初始化脚手架搭建

项目初始化脚手架搭建 仓库地址 easy-web: 一个快速初始化SpringBoot项目的脚手架 (gitee.com) 目前这个项目还是个单体项目&#xff0c;后续笔者有时间可能会改造成父子工程项目&#xff0c;将通用模块抽象出来&#xff0c;有兴趣的小伙伴也可以自行 CV 改造。 1、项目初始化…

【重点】【BFS】542.01矩阵

题目 法1&#xff1a;经典BFS 下图中就展示了我们方法&#xff1a; class Solution {public int[][] updateMatrix(int[][] mat) {int m mat.length, n mat[0].length;int[][] dist new int[m][n];boolean[][] used new boolean[m][n];Queue<int[]> queue new Li…

Spring Boot 3 集成 Thymeleaf

在现代的Web开发中&#xff0c;构建灵活、动态的用户界面是至关重要的。Spring Boot和Thymeleaf的结合为开发者提供了一种简单而强大的方式来创建动态的Web应用。本文将介绍如何在Spring Boot项目中集成Thymeleaf&#xff0c;并展示一些基本的使用方法。 什么是Thymeleaf&#…