头歌Educoder——Java 字符串与集合练习—词频统计(一)

简介: Java 字符串与集合练习

第1关:单词分割

任务描述

本关任务:将一段英语字符串进行单词分割。

相关知识

为了完成本关任务,你需要掌握:如何将字符串进行分割。

String.split()拆分字符串

langString类的split()方法

publicString[] split(Stringregex)
publicString[] split(Stringregex,intlimit)
//limit 参数控制模式应用的次数,因此影响所得数组的长度

拆分示例:

publicclassSplitDemo {
publicstaticvoidmain(String[] args) {
StringStr="Harry James Potter";
String[] StrArray=Str.split("\\s");//"\\s"表示空格//也可以来" "来进行拆分  String[] StrArray=Str.split(" ");for(Stringstr:StrArray){
System.out.println(str);
        }
}

运行结果

Harry

James

Potter

StringTokenizer类拆分字符串

util包下的StringTokenizer

  • 拆分原理

StringTokenizer拆分字符串的原理是通过生成StringTokenizer对象,然后运用对象的属性来处理字符串拆分的。

publicStringTokenizer(Stringstr,Stringdelim,booleanreturnDelims)
publicStringTokenizer(Stringstr,Stringdelim)
publicStringTokenizer(Stringstr)
//str:要解析的字符串 delim:分隔符 returnDelims:是否将分隔符作为标记返回

拆分示例:

importjava.util.StringTokenizer;
publicclassStringTokenDemo {
publicstaticvoidmain(String[] args) {
StringStr="Harry James Potter";
StringTokenizerstrToken=newStringTokenizer(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()方法时必须得加"\\"才行。


开始你的任务吧,祝你成功!

代码示例

test.java

packagestep1;
importjava.util.List;
importjava.util.ArrayList;
importjava.util.Scanner;
publicclasstest{
publicstaticvoidmain(String[] args){
Scannersc=newScanner(System.in);
StudentDemodemo=newStudentDemo();
Stringstr1=sc.nextLine();
Stringstr2=sc.nextLine();
List<String>list1=demo.splitPartition(str1);
List<String>list2=demo.tokenPartition(str2);
for(Strings:list1){
System.out.println(s);
        }
System.out.println();
for(Strings:list2){
System.out.println(s);
        }
    }
}

StudentDemo.java

packagestep1;
importjava.util.List;
importjava.util.ArrayList;
importjava.util.StringTokenizer;
publicclassStudentDemo {
// 使用String.split()方法分割publicList<String>splitPartition(Stringstr) {
List<String>list=newArrayList<String>();
//请在此添加实现代码/********** Begin **********/String[] strings=str.split("\\|");
for (Stringstring : strings) {
list.add(string);
        }
/********** End **********/returnlist;
    }
// 使用StringTokenizer类进行分割publicList<String>tokenPartition(Stringstr) {
List<String>list=newArrayList<String>();
// 请在此添加实现代码/********** Begin **********/StringTokenizerstrings=newStringTokenizer(str, "?");
while (strings.hasMoreTokens()) {
list.add(strings.nextToken());
        }
/********** End **********/returnlist;
    }
}


目录
相关文章
|
3月前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
61 3
|
5月前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
69 3
|
5月前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
62 2
|
4月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
179 83
|
4月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
129 60
|
4月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
86 26
|
3月前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
76 5
|
4月前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
85 4
|
4月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
131 8
|
4月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
80 6