# 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);
	}
}

# 第三部分

# 作业内容

编写一个类,该类的功能是可以根据给定的字符串(字符串的内容可以是中文,也可以是英文,字符串中单词之间没有空格)和子串,计算出字符串中包含多少个子串。(提示,可以使用 StringindexOf(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);
	}
}
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Lavender 微信支付

微信支付

Lavender 支付宝

支付宝

Lavender 贝宝

贝宝