头歌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;
    }
}


目录
相关文章
|
6月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
494 108
|
6月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
339 100
|
6月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
352 101
|
6月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
5月前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
158 7
|
8月前
|
Oracle Java 关系型数据库
掌握Java Stream API:高效集合处理的利器
掌握Java Stream API:高效集合处理的利器
434 80
|
8月前
|
安全 Java API
Java 8 Stream API:高效集合处理的利器
Java 8 Stream API:高效集合处理的利器
342 83
|
8月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
709 82
|
7月前
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
546 23