Java 字符串与集合练习,零基础入门到精通,收藏这篇就够了

第1关:单词分割
任务描述
本关任务:将一段英语字符串进行单词分割。
相关知识
为了完成本关任务,你需要掌握:如何将字符串进行分割。
String.split()拆分字符串
lang包String类的split()方法
public String[] split(String regex)
public String[] split(String regex,int limit)
//limit 参数控制模式应用的次数,因此影响所得数组的长度
拆分示例:

public class SplitDemo { public static void main(String[] args) { String Str="Harry James Potter"; String[] StrArray=Str.split("\\s");//"\\s"表示空格 //也可以来" "来进行拆分 String[] StrArray=Str.split(" "); for(String str:StrArray){ System.out.println(str); } }

运行结果
Harry
James
Potter
StringTokenizer类拆分字符串
util包下的StringTokenizer类
拆分原理
StringTokenizer拆分字符串的原理是通过生成StringTokenizer对象,然后运用对象的属性来处理字符串拆分的。
public StringTokenizer(String str,String delim,boolean returnDelims)
public StringTokenizer(String str,String delim)
public StringTokenizer(String str)
//str:要解析的字符串 delim:分隔符 returnDelims:是否将分隔符作为标记返回
拆分示例:

import java.util.StringTokenizer; public class StringTokenDemo { public static void main(String[] args) { String Str="Harry James Potter"; StringTokenizer strToken=new StringTokenizer(Str); //当有拆分的子字符串时,输出这个字符串 while(strToken.hasMoreTokens()){ System.out.println(strToken.nextToken()); } } }

运行结果
Harry
James
Potter
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
用String.split()方法将字符串“aaa|bbb|ccc”以“|”进行拆分,用StringTokenizer类将字符串“This?is?a?test?string”以“?”进行拆分。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
测试输入:
aaa|bbb|ccc
This?is?a?test?string
预期输出:
aaa
bbb
ccc
This
is
a
test
string
提示:
“|”、“.”、“*”、“+”、“\”等不是有效的模式匹配规则表达式,是转义字符,使用split()方法时必须得加"\"才行。
开始你的任务吧,祝你成功!
参考代码:

package step1; import java.util.List; import java.util.ArrayList; import java.util.StringTokenizer; public class StudentDemo{ //使用String.split()方法分割 public List<String> splitPartition(String str){ List<String> list=new ArrayList<String>(); //请在此添加实现代码 /********** Begin **********/ String[] strArray=str.split("\\|"); for(String str2:strArray){ System.out.println(str2); } System.out.println(); /********** End **********/ return list; } //使用StringTokenizer类进行分割 public List<String> tokenPartition(String str){ List<String> list=new ArrayList<String>(); //请在此添加实现代码 /********** Begin **********/ String[] strArray=str.split("\\?"); for(String str1:strArray){ System.out.println(str1); } /********** End **********/ return list; } }

第2关:确定单词在字符串中的位置
任务描述
本关任务:得到一个单词在一段字符串中的位置。
相关知识
为了完成本关任务,你需要掌握:如何获取字符串中指定单词出现的下标
String.indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。(若返回-1则表示在该字符串中没有你要找的单词)
//声明一段字符串
String str=“Can I help you”;
//显示“I”在str中第一次出现的下标
System.out.println(str.indexOf(“I”));
//String.indexOf(int ch)方法与此方法形同,只是参数是单个字符的ASCII码
输出:4
String.indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
String str=“Can I help you”;
System.out.println(str.indexOf(“I”,5));
//同样String.indexOf(int ch, int fromIndex)方法与此方法也形同,只是参数是单个字符的ASCII码
输出:-1
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
列出给定字符串中每个单词(按“ ”,“,”,“?”,“.”,“!”,“:”,“\n”分割)首次出现的位置。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
测试输入:
No arguments will give courage to the coward.
预期输出:
单词:the—首次出现的角标34
单词:No—首次出现的角标0
单词:give—首次出现的角标18
单词:will—首次出现的角标13
单词:arguments—首次出现的角标3
单词:to—首次出现的角标31
单词:coward—首次出现的角标38
单词:courage—首次出现的角标23
提示:
//1.分割单词时可一次进行
//2.可以采用Map集合的键值对存储
Map<String, Integer> map = new HashMap<String, Integer>();
map.put(“Hello”,0);
map.put(“world”,1);
Set<Entry<String, Integer>> entrySet = wordCount.entrySet();
for (Entry<String, Integer> entry : entrySet) {
System.out.println(entry.getKey()+“—”+entry.getValue());
}
输出:
Hello—0
world—1
开始你的任务吧,祝你成功!
参考代码:

package step2; import java.util.Map; import java.util.HashMap; import java.util.StringTokenizer; public class StudentDemo{ //返回一个Map集合来得到单词和首次出现的下标 key为单词名称 value为单词的角标 public Map<String, Integer> getMap(String str){ Map<String, Integer> map = new HashMap<String, Integer>(); //对str进行分割 再加入map集合中 //请在此添加实现代码 /********** Begin **********/ StringTokenizer tok = new StringTokenizer(str); String word; while(tok.hasMoreTokens()){ word = tok.nextToken(", .\n"); int index = str.indexOf(word); map.put(word,index); } /********** End **********/ return map; } }

第3关:实现词频统计和排序输出
任务描述
本关任务:编写一个能计算一段文本内容中出现单词的次数的降序排列的小程序。
相关知识
为了完成本关任务,你需要掌握:
1.如何统计相同单词的次数;
2.如何进行排序。
统计相同单词的次数

//使用map集合进行存储 String s="Day by Day"; Map<String,Integer> map=new HashMap<String,Integer>(); StringTokenizer tokenizer=new StringTokenizer(s); int count;//记录次数 String word;//单个单词 while(tokenizer.hasMoreTokens()){ word=tokenizer.nextToken(" "); if(map.containsKey(word)){ //拿到之前存在map集合中该单词的次数 count=map.get(word); map.put(word, count+1); }else{ map.put(word, 1); } } Set<Entry<String, Integer>> entrySet = map.entrySet(); for (Entry<String, Integer> entry : entrySet) { System.out.println(entry.getKey()+"-"+entry.getValue()); }

输出:
by-1
Day-2
如何进行排序
使用Collections包装类。它包含有各种有关集合操作的静态多态方法。

//可根据指定比较器产生的顺序对指定列表进行排序。 Collections.sort(List<T> list, Comparator<? super T> c)

示例如下:

//以上实例中的map集合为例 将map集合的每一项添加进list集合中 List<Map.Entry<String, Integer>> infos = new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); Collections.sort(infos, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { //前者-后者 升序 后者-前者 降序 return (o2.getValue() - o1.getValue()); } });

输出:
Day-2
by-1
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
将指定文本(可以通过右侧文件目录下的src/step3/readme.txt查看)以降序的方式输出每个单词出现的次数。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
预期输出:
参考右边测试集中的输出。
开始你的任务吧,祝你成功!
参考代码:

package step3; import java.util.Map; import java.util.HashMap; import java.util.StringTokenizer; public class StudentDemo{ //获取单词的数量 public Map<String, Integer> getWordCount(String str) { Map<String, Integer> map = new HashMap<String, Integer>(); //请在此添加实现代码 /********** Begin **********/ StringTokenizer tokenizer = new StringTokenizer(new String(str)); int count; String word; while (tokenizer.hasMoreTokens()) { word = tokenizer.nextToken(" ,?.!:;\"\"‘’\n"); if (map.containsKey(word)) { count = map.get(word); map.put(word, count + 1); } else { map.put(word, 1); } } /********** End **********/ return map; } }

Java开发的就业市场正在经历结构性调整,竞争日益激烈

传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业技术需求升级,市场对Java人才的要求已从通用技能转向了更深入的领域经验(如云原生、微服务)或前沿的AI集成能力。这也导致岗位竞争加剧,在一、二线城市,求职者不仅面临技术内卷,还需应对学历与项目经验的高门槛。

大模型为核心的AI领域正展现出前所未有的就业热度与人才红利

2025年,AI相关新发岗位数量同比激增543%,单月增幅最高超过11倍,大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡,议价能力极强,跳槽薪资涨幅可达30%-50%。值得注意的是,市场并非单纯青睐算法研究员,而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师,在向“Java+大模型”复合人才转型时拥有独特优势,成为企业竞相争夺的对象,其薪资天花板也远高于传统Java岗位。

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

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

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

相关文章

RaNER模型准确率低?数据预处理与部署调优完整指南

RaNER模型准确率低&#xff1f;数据预处理与部署调优完整指南 1. 引言&#xff1a;AI 智能实体侦测服务的落地挑战 在自然语言处理&#xff08;NLP&#xff09;的实际应用中&#xff0c;命名实体识别&#xff08;Named Entity Recognition, NER&#xff09;是信息抽取、知识图…

AI实体侦测服务部署案例:金融行业数据提取实战

AI实体侦测服务部署案例&#xff1a;金融行业数据提取实战 1. 引言&#xff1a;AI 智能实体侦测服务在金融场景的价值 在金融行业中&#xff0c;每天都会产生海量的非结构化文本数据——包括新闻报道、监管公告、财报电话会议记录、社交媒体舆情等。如何从这些杂乱信息中快速…

中文命名实体识别实战:RaNER模型在金融文本中的应用

中文命名实体识别实战&#xff1a;RaNER模型在金融文本中的应用 1. 引言&#xff1a;AI 智能实体侦测服务的业务价值 在金融信息处理场景中&#xff0c;海量的非结构化文本&#xff08;如财经新闻、公告、研报&#xff09;蕴含着大量关键实体信息——公司名称、高管姓名、地区…

魔术轮胎与Dugoff轮胎建模:Simulink 中的整车动力学探索

魔术轮胎&#xff0c;dugoff轮胎建模软件使用&#xff1a;Matlab/Simulink 适用场景&#xff1a;采用模块化建模方法&#xff0c;搭建非线性魔术轮胎PAC2002&#xff0c;dugoff模型。 非线性轮胎模型输入&#xff1a; 轮胎侧偏角&#xff0c;轮胎滑移率&#xff0c;轮胎垂向载荷…

AI智能实体侦测服务助力知识图谱构建:实体抽取自动化实践

AI智能实体侦测服务助力知识图谱构建&#xff1a;实体抽取自动化实践 1. 技术背景与应用价值 在知识图谱的构建过程中&#xff0c;非结构化文本中的信息抽取是关键的第一步。传统的人工标注方式效率低下、成本高昂&#xff0c;难以应对海量文本数据的处理需求。随着自然语言处…

RaNER模型部署案例:电商产品评论分析

RaNER模型部署案例&#xff1a;电商产品评论分析 1. 引言&#xff1a;AI 智能实体侦测服务的业务价值 在电商场景中&#xff0c;海量用户评论蕴含着丰富的消费者情感、产品反馈和品牌提及信息。然而&#xff0c;这些数据大多以非结构化文本形式存在&#xff0c;人工提取关键信…

Mac OS 15.5下使用gcc15.2的Modules模块功能出现无法链接的解决方法

在Mac OS 15.5系统中&#xff0c;最近想用C23&#xff0c;试了试gcc15.2&#xff0c;发现出现无法链接模块功能&#xff1a; 首先下一个最简单的Helloworld.cpp: import std;int main() { std::println("Hello,world!"); return 0; } 使用gcc15.2编…

RaNER模型技术深度:实体识别中的边界问题

RaNER模型技术深度&#xff1a;实体识别中的边界问题 1. 技术背景与核心挑战 命名实体识别&#xff08;Named Entity Recognition, NER&#xff09;是自然语言处理中的一项基础任务&#xff0c;广泛应用于信息抽取、知识图谱构建、智能搜索等场景。在中文环境下&#xff0c;由…

RaNER模型部署详解:中文实体识别服务的高效实现

RaNER模型部署详解&#xff1a;中文实体识别服务的高效实现 1. 引言&#xff1a;AI 智能实体侦测服务 在信息爆炸的时代&#xff0c;非结构化文本数据&#xff08;如新闻、社交媒体、文档&#xff09;占据了企业数据总量的80%以上。如何从中快速提取关键信息&#xff0c;成为…

9款免费AI论文工具揭秘:效率飙升300%,告别熬夜搞定毕业论文

开头&#xff1a;90%的学生都不知道的论文写作“黑科技”&#xff0c;让熬夜成为历史 你是否经历过这些绝望时刻&#xff1f; 对着空白文档发呆3小时&#xff0c;连摘要都写不出一句通顺的话&#xff1b;为了降重把“研究表明”改成“笔者发现”&#xff0c;结果查重率还是飙…

导师推荐9个AI论文软件,专科生轻松搞定毕业论文!

导师推荐9个AI论文软件&#xff0c;专科生轻松搞定毕业论文&#xff01; AI 工具让论文写作不再难 对于很多专科生来说&#xff0c;撰写毕业论文是一个既重要又令人头疼的任务。从选题到大纲&#xff0c;再到初稿和降重&#xff0c;每一步都可能成为阻碍前进的“拦路虎”。而随…

AI智能实体侦测服务如何应对错别字?鲁棒性增强策略分享

AI智能实体侦测服务如何应对错别字&#xff1f;鲁棒性增强策略分享 1. 引言&#xff1a;中文命名实体识别的现实挑战 在自然语言处理&#xff08;NLP&#xff09;的实际应用中&#xff0c;中文命名实体识别&#xff08;NER&#xff09; 是信息抽取的核心任务之一。AI 智能实体…

混元翻译1.5实战:技术文档精准翻译

混元翻译1.5实战&#xff1a;技术文档精准翻译 随着全球化进程加速&#xff0c;高质量、低延迟的多语言翻译需求日益增长。在技术文档、开发手册、API说明等专业领域&#xff0c;传统通用翻译模型常因术语不准、格式错乱、上下文缺失等问题导致信息失真。为解决这一痛点&#…

企业级信息抽取系统搭建:AI智能实体侦测服务生产环境部署教程

企业级信息抽取系统搭建&#xff1a;AI智能实体侦测服务生产环境部署教程 1. 引言 1.1 业务场景描述 在现代企业信息化建设中&#xff0c;非结构化文本数据&#xff08;如新闻报道、客户反馈、合同文档&#xff09;占据了数据总量的80%以上。如何从这些海量文本中快速提取关…

中文长文本识别优化:AI智能实体侦测服务分段推理实战技巧

中文长文本识别优化&#xff1a;AI智能实体侦测服务分段推理实战技巧 1. 引言&#xff1a;中文长文本处理的现实挑战 在自然语言处理&#xff08;NLP&#xff09;的实际应用中&#xff0c;中文长文本的命名实体识别&#xff08;NER&#xff09; 始终是一个高价值但高难度的任…

导师严选10个AI论文工具,专科生轻松搞定论文写作!

导师严选10个AI论文工具&#xff0c;专科生轻松搞定论文写作&#xff01; AI工具如何改变论文写作的未来 随着人工智能技术的不断进步&#xff0c;越来越多的专科生开始借助AI工具来完成论文写作。这些工具不仅能够帮助学生节省大量时间&#xff0c;还能有效降低AIGC&#xff0…

增加0.1nF电筒改进测量效果

增加补偿电容的效果简 介&#xff1a; 本文通过实验验证了正交电感LC谐振回路中补偿电容的作用。在原有1nF谐振电容基础上并联0.1nF小电容后&#xff0c;测试结果显示&#xff1a;传感器灵敏度提升约2倍&#xff0c;两路信号相关数据噪声显著减小&#xff0c;角度计算稳定性明显…

AI智能实体侦测服务支持多段落输入吗?长文档结构解析能力

AI智能实体侦测服务支持多段落输入吗&#xff1f;长文档结构解析能力 1. 引言&#xff1a;AI 智能实体侦测服务的演进需求 随着自然语言处理&#xff08;NLP&#xff09;技术在信息抽取、知识图谱构建和内容审核等场景中的广泛应用&#xff0c;命名实体识别&#xff08;Named…

HY-MT1.5-7B上下文理解:对话场景翻译优化技巧

HY-MT1.5-7B上下文理解&#xff1a;对话场景翻译优化技巧 1. 引言&#xff1a;腾讯开源的混元翻译大模型 随着全球化进程加速&#xff0c;跨语言沟通需求日益增长&#xff0c;高质量、低延迟的机器翻译技术成为智能应用的核心支撑。在此背景下&#xff0c;腾讯推出了混元翻译…

中文NER服务部署教程:RaNER模型快速上手指南

中文NER服务部署教程&#xff1a;RaNER模型快速上手指南 1. 引言 1.1 AI 智能实体侦测服务 在信息爆炸的时代&#xff0c;非结构化文本数据&#xff08;如新闻、社交媒体内容、文档资料&#xff09;占据了企业数据的绝大部分。如何从这些杂乱无章的文字中快速提取出有价值的…