字符串的切分及其拓展

      假如有以下email数据“aa@sohu.com,bb@ 163.com,cc@sina.com,..”现需要把email 中的用户部分和邮件地址部分分离,分离后以键值对应的方式放入HashMap

思路:我们要将Email的用户部分和邮件地址部分分离,分离后以键值对应的方式放入HashMap,要思考一下怎么将一整个字符变为aa souhu.com... 形式
aa@sohu.com,bb@ 163.com,cc@sina.com -> aa@sohu.com bb@ 163.com cc@sina.com ->aa sohu.com bb 163.com...形式
需要将字符串变为字符数组,再将字符数组中的字符串,字符化,开始截取;最后对map集合进行遍历进行了

点击查看代码
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo6 {public static void main(String[] args) {String s = "aa@sohu.com,bb@ 163.com,cc@sina.com,..";HashMap<Object, Object> map = new HashMap<>();String[] s1 = s.split(",");for (String str : s1) {
//方法一:String name = null;String address = null;char[] chars = str.toCharArray();for (int i = 0; i < str.length(); i++) {if(chars[i]=='@'){name = str.substring(0,i);address = str.substring(i+1);map.put(name,address);方法二:String[] split = str.split("@");if (!str.equals("...")) {map.put(split[0], split[1]);}}}}Set<Map.Entry<Object, Object>> entries = map.entrySet();for (Map.Entry<Object, Object> entry : entries) {System.out.println(entry);}}
}

例题二”需求过长放入下面detail中“

//4.给定一个包含学生姓名和成绩的字符串数组 `students`,格式为“姓名-成绩”,例如:`["Alice-85", "Bob-90", "Charlie-78", "David-92", "Emma-88"]` 。使用 `TreeMap` 来存储学生的姓名和成绩,并实现以下功能:
//1. 按照成绩从高到低的顺序输出学生的姓名和成绩。
//2. 计算并输出平均成绩。
//3. 找出成绩最高的学生姓名和成绩。
//4. 找出成绩最低的学生姓名和成绩。
//
//示例输入
//["Alice-85", "Bob-90", "Charlie-78", "David-92", "Emma-88"]
//
//示例输出
//按照成绩从高到低的顺序:
//David - 92
//Bob - 90
//Emma - 88
//Alice - 85
//Charlie - 78
//平均成绩:86.2
//成绩最高的学生:David - 92
//成绩最低的学生:Charlie - 78

创建学生类

点击查看代码
package com.shujia.demotest;public class Student implements Comparable<Student>{private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}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;}@Overridepublic String toString() {returnname +"-" + age;}@Overridepublic int compareTo(Student o) {int i = o.getAge() - this.age;return (i==0)?o.getName().compareTo(this.name):i;}
}//需要重写compare to 方法,实现接口Comparable接口

测试类

点击查看代码
public class Demo2 {public static void main(String[] args) {TreeMap<String, Integer> map = new TreeMap<>();String[] students  = {"Alice-85","Bob-90","Charlie-78","David-92","Emma-88"};//TODO:如何将字符串拆分;先把他变成字符串数组,然后再把字符串数组里的字符串进行拆分,将字符串变为char类型
//        for (String student : students) {
//            String name = null;
//            String score = null;
//            char[] chars = student.toCharArray();
//            for (int i = 0; i < student.length(); i++) {
//                if(chars[i]=='-'){
//                    name = student.substring(0,i);
//                    score = student.substring(i+1);
//                    map.put(name,Integer.parseInt(score));
//                }
//            }
//        }for (String student : students) {String[] s1 = student.split("-");map.put(s1[0],Integer.parseInt(s1[1]));//根据规律新按照-进行前后拆分,形成了一个新的字符数组是【Alice,85】...   }sort(map);getAvg(map);getMax(map);getMin(map);}public static void sort(TreeMap<String, Integer> map){//需要通过TreeSet,无法对map直接进行排序TreeSet<Student> set = new TreeSet<>();
//            方法一://            Set<Map.Entry<String, Integer>> entries = map.entrySet();
//            for (Map.Entry<String, Integer> entry : entries) {
//                String name = entry.getKey();
//                Integer score = entry.getValue();
//                set.add(new Student(name,score));
//
//            }
//            for (Student student : set) {
//                System.out.println(student);
//            }//方法二://TODO:通过map的建锁定map的值,通过调用map集合的get(),找到value//TODO:总体来说就是遍历map集合,把我们所需要的值塞到set集合for (String s : map.keySet()) {set.add(new Student(s,map.get(s)));}for (Student student : set) {System.out.println(student);}}public static void getAvg(TreeMap<String, Integer> map){int sum = 0;int i = 0;for (String s : map.keySet()) {sum+=map.get(s);i++;}System.out.println("平均成绩:"+sum/(i*1.0));}public  static void getMax(TreeMap<String, Integer> map){//TODO: 我们要确立一个flag(一个标识)让条件执行一次int flag = 0;int max = 0;String name = null;for (String s : map.keySet()) {if(flag==0){max = map.get(s);flag++;}else{if(map.get(s)>max){max = map.get(s);name = s;}}}System.out.println("成绩最高的学生:"+name+max);}public  static void getMin(TreeMap<String, Integer> map){int flag = 0;int min = 0;String name = null;for (String s : map.keySet()) {if(flag==0){min = map.get(s);flag++;}else{if(map.get(s)<min){min = map.get(s);name = s;}}}System.out.println("成绩最低的学生:"+name+min);}}

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

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

相关文章

Mesh Renderer

网格渲染器 (Mesh Renderer) 网格渲染器从网格过滤器 (Mesh Filter) 获取几何体,然后在游戏对象的变换组件所定义的位置渲染该几何体。Materials Materials 部分列出了 Mesh Renderer 当前使用的所有材质。从3D建模软件导入的网格可以使用多种材质,而每个子网格使用列表中的一…

CIM+全场景应用,铸就智慧城市发展新篇

在数字化浪潮的推动下,智慧城市建设正成为全球城市发展的新趋势。而CIM(城市信息模型)作为智慧城市建设的核心,正以其强大的数据集成和分析能力,引领着城市发展的新篇章。今天,让我们一起探讨CIM+全场景应用如何助力智慧城市的建设。1. CIM的定义与重要性CIM是一种集成了…

【故障公告】数据库服务器 CPU 100% 造成全站故障

非常抱歉,今天下午 16:03~16:33 期间,我们使用的阿里云 RDS 实例(SQL Server2016 标准版,16核32G)出现 CPU 100% 问题,造成全站无法正常访问,由此给您带来很大的麻烦,请您谅解。 发现故障后,我们通过阿里云 RDS 控制台进行了主备切换,由于 CPU 被占太满,主备切换失败…

手把手教你如何下载高途和途途上面已购买的视频课程

前言:很多同学都想知道高途课堂/途途课堂/高途高中规划的视频课程怎么下载,但是高途上面已购买的视频课程是不提供直接下载方式的,所以下面就教大家如何用学无止下载器下载高途上面已购买的视频课程。 一、下载器首页输入G回车,再输入对应的APP序号并按回车,提示登录,再输…

中公网校上买的课程快过期了怎么办?教你如何下载到本地永久观看~

前言:很多同学都遇到过购买的网课课程过期了,然后无法观看,花了钱还没学完,血亏。这里教大家一种方法,把中公网校上面快过期的课程下载到电脑本地,然后可以永久观看了~ 提示:操此方法需要使用Windows电脑,Mac还不支持 一、电脑登录中公网校官网(点此登录中公网页)二、…

给大家介绍一个快速拉取代码的方法

1、我们安装好git之后、复制应用的ssh密钥。进入想保存本地的目录即可、等待一会、密钥认证成功。(我这里是在D盘、researchAndDe...目录)2、使用CD命令、进入想拉取代码的应用 3、使用“git checkkout 分支名称”,等待提示Switched to a new branch 拉取代码成功4、进入ide…

给大家介绍一个快速拉去代码的方法

1、我们安装好git之后、复制应用的ssh密钥。进入想保存本地的目录即可、等待一会、密钥认证成功。(我这里是在D盘、researchAndDe...目录)2、使用CD命令、进入想拉去代码的应用 3、使用“git checkkout 分支名称”,

Cinemachine系列——CinemachineConfiner

使用Cinemachine Confiner扩展可以限制相机的位置在特定的体积或区域内。 Confiner可以在2D或3D模式下工作,不同的模式影响它接受的边界形状。在3D模式下,相机在三维空间中的位置被限制在一个体积内,这同样适用于2D游戏,但需要考虑深度。在2D模式下,深度问题不需要考虑。 …

网站模板可以自己修改吗?

网站模板通常是可以根据个人或企业的具体需求进行自定义修改的。以下是一些常见的修改方式:修改样式:通过编辑CSS文件来改变网站的颜色、字体、布局等视觉效果。 调整结构:在HTML或相应的模板文件中添加或删除元素,以适应不同的页面布局需求。 功能增强:利用JavaScript或其…

网站搭建教程

1.领取免费服务器,推荐SanFengyun免费服务器。2.服务器安装BT面板,然后一键部署网站 3.也可以自己上传源码到网站。 4.绑定域名,服务器将域名加入白名单。 5.部署SLL证书。

20222324 石国力 《网络与系统攻防技术》 实验二

1.实验内容 (1)使用netcat获取主机操作Shell,cron启动某项任务 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell (4)使用MSF meterpreter(或其他软件)生成获取目标…

网站能修改模板吗?

大多数网站平台都支持用户自定义或修改模板。具体操作步骤通常包括:选择模板:在网站后台选择一个基础模板作为起点。 编辑模板:使用网站提供的编辑工具对模板进行修改,如更改颜色方案、布局调整、添加或删除模块等。 自定义内容:在模板中加入自己的文字、图片、视频等具体…