# JAVA 程序设计基础作业四
# 第一部分
# 作业内容
编写一个类,该类的功能是可以根据给定的字符串(字符串中的内容是英文单词、英文字符和标点符号,字符串中单词之间有空格)和子串,计算出字符串中包含多少个子串。(要求:对字符串分词时使用 String 类的 split 方法。)
在主类中输入字符串和子串,之后使用上面的类检索出子串的数量。
例如,程序可以使用下面的框架:
import java.util.Scanner; class CountSubString{
//【变量声明】
// 方法实现
void countSubString(String s, String substring){
//【代码】
}
}
public class CountString{
public static void main(String args[]){
Scanner reader=new Scanner(System.in); System.out.println("请输入字符串:"); String s=reader.nextLine(); System.out.println("请输入你要检索的子串:"); String substring=reader.nextLine(); CountSubString a=new CountSubString(); a.countSubString(s, substring);}
}
例如,可以输入字符串 “I like apple. The apple is decilious. Do you like apple?” 和子串 “apple”,程序的运行结果应该是检索到 3 个 apple。
# 代码
import java.util.Scanner; | |
class CountSubString | |
{ | |
void countSubString(String str,String substring) | |
{ | |
int ss = 0; | |
String[] words=str.split("[\\s|.?,;:`~<>!]+"); | |
for(int i=0;i<words.length;i++) | |
{ | |
if(words[i].equals(substring)) | |
ss++; | |
} | |
System.out.println(ss); | |
} | |
} | |
public class CountString1 | |
{ | |
public static void main(String[] args) { | |
Scanner reader=new Scanner(System.in); | |
System.out.println("请输入字符串:"); | |
String s=reader.nextLine(); | |
System.out.println("请输入你要检索的子串:"); | |
String substring=reader.nextLine(); | |
CountSubString a=new CountSubString(); | |
a.countSubString(s, substring); | |
} | |
} |
# 第二部分
# 作业内容
编写一个类,该类的功能是可以根据给定的字符串(字符串中的内容是英文单词、英文字符和标点符号,字符串中单词之间有空格)和子串,计算出字符串中包含多少个子串。(要求:使用
StringTokenizer
类实现。)
这一部分的程序框架和第一部分相同,只是void countSubString(String s, String substring)
方法的具体实现不同。
# 代码
import java.util.*; | |
class CountSubString | |
{ | |
void countSubString(String str,String substring) | |
{ | |
int ss=0; | |
StringTokenizer stkn=new StringTokenizer(str," |.?,;:`~<>!]+"); | |
while(stkn.hasMoreElements()) | |
{ | |
String s1=stkn.nextToken(); | |
if(s1.equals(substring)) | |
{ | |
ss++; | |
} | |
} | |
System.out.println(ss); | |
} | |
} | |
public class CountString2 | |
{ | |
public static void main(String[] args) { | |
Scanner reader=new Scanner(System.in); | |
System.out.println("请输入字符串:"); | |
String s=reader.nextLine(); | |
System.out.println("请输入你要检索的子串:"); | |
String substring=reader.nextLine(); | |
CountSubString a=new CountSubString(); | |
a.countSubString(s, substring); | |
} | |
} |
# 第三部分
# 作业内容
编写一个类,该类的功能是可以根据给定的字符串(字符串的内容可以是中文,也可以是英文,字符串中单词之间没有空格)和子串,计算出字符串中包含多少个子串。(提示,可以使用
String
类indexOf(String s)
方法实现。)
这一部分的程序框架和前两部分相同,只是void countSubString(String s, String substring)
方法的具体实现不同。
例如,可以输入字符串“Ilikeapple.Theappleisdecilious.Doyoulikeapple?”
和子串“apple”
,程序的运行结果应该是检索到 3 个 apple。
# 代码
import java.util.*; | |
class CountSubString | |
{ | |
void countSubString(String str,String substring) | |
{ | |
int count = 0; | |
int index = -1; | |
while ((index = str.indexOf(substring, index)) > -1) | |
{ | |
++index; | |
++count; | |
} | |
System.out.println(count); | |
} | |
} | |
public class CountString3 | |
{ | |
public static void main(String[] args) { | |
Scanner reader=new Scanner(System.in); | |
System.out.println("请输入字符串:"); | |
String s=reader.nextLine(); | |
System.out.println("请输入你要检索的子串:"); | |
String substring=reader.nextLine(); | |
CountSubString a=new CountSubString(); | |
a.countSubString(s, substring); | |
} | |
} |