编写一个程序,统计你的学号字符串在一段字符串(可自习定义)中出现的次数。要求用String类的常用方法来计算出现的次数。 例如:张三同学学号为123456,则统计“123456”在“namezhangsan123456idnumber123456and123”出现的次数为2。 实现思路: (1)实现本程序需要先定义两个字符串,一个子串,一个检索串。 (2)要查找子串在总串中出现的次数,可以先使用String类的contain()方法,判断总串中是否包含子串,如果不包含,那么不用计算,出现的次数一定为0。 (3)如果包含了,那么再具体计算出现的次数。使用String类的indexOf()方法可以获取子串在总串中第一次出现的索引。获取到之后,再在剩余字串(该索引加上子串长度的位置处)继续查找子串(可以通过String类的subString()方法将整串的剩余部分截取出来,然后在剩余整串中从头查找子串)。依次类推,通过循环完成查找,直到找不到子串为止,此时indexOf()方法的返回值为-1. (4)定义一个计数器,记录出现的次数,在循环中每查到一次子串,则计数器加1.
时间: 2024-02-17 17:01:48 浏览: 24
好的,下面是代码实现:
```java
public class CountSubstring {
public static void main(String[] args) {
String str = "namezhangsan123456idnumber123456and123";
String subStr = "123456";
int count = 0;
if (str.contains(subStr)) { // 先判断是否包含子串
int index = str.indexOf(subStr); // 获取子串第一次出现的索引
while (index != -1) { // 只要还能找到子串就继续循环
count++; // 每找到一次子串,计数器加1
str = str.substring(index + subStr.length()); // 截取剩余整串,继续查找子串
index = str.indexOf(subStr); // 获取子串在剩余整串中的索引
}
}
System.out.println("子串出现的次数为:" + count);
}
}
```
你可以直接复制上面的代码,粘贴到你的Java开发环境中运行,看看结果是否正确。
相关问题
在数据库中 定义一个函数 传入参数学号 返回一个对该学生的成绩说明字符串
好的,以下是一个简单的例子,假设你有一个名为 `students` 的数据库表,其中包含学生的学号和成绩等信息:
```sql
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
score INT
);
```
现在,你可以创建一个名为 `get_score_description` 的函数,它接受一个学号作为输入参数,查询数据库并返回一个字符串,描述该学生的成绩情况。例如,如果学生的成绩为 90 分或以上,则返回 "优秀",如果成绩为 80 分或以上,则返回 "良好",以此类推。
```sql
CREATE FUNCTION get_score_description(student_id INT)
RETURNS VARCHAR(50)
BEGIN
DECLARE score_val INT;
DECLARE score_desc VARCHAR(50);
SELECT score INTO score_val FROM students WHERE id = student_id;
IF score_val >= 90 THEN
SET score_desc = '优秀';
ELSEIF score_val >= 80 THEN
SET score_desc = '良好';
ELSEIF score_val >= 70 THEN
SET score_desc = '中等';
ELSEIF score_val >= 60 THEN
SET score_desc = '及格';
ELSE
SET score_desc = '不及格';
END IF;
RETURN CONCAT('该学生的成绩为:', score_val, ',属于', score_desc, '等。');
END;
```
在这个函数中,我们首先声明了两个变量 `score_val` 和 `score_desc`,用于存储查询结果和成绩说明。然后,我们查询数据库,获取指定学生的成绩值,并根据成绩值设置 `score_desc` 变量的值。最后,我们使用 `CONCAT` 函数将成绩说明字符串连接起来,并返回给调用者。
要使用该函数,你可以像下面这样调用它:
```sql
SELECT get_score_description(1);
```
其中,1 是你要查询的学生的学号。函数将返回一个字符串,描述该学生的成绩情况。
c#定义一个学生类,包含字段及属性,学号,姓名,院系,courses,字符串数组,虚方法显示姓名及学号
在 C# 中,你可以定义一个名为 `Student` 的类,包含所需的字段和属性,以描述学生的相关信息。以下是创建这个类的示例:
```csharp
public class Student
{
// 定义字段
public int ID; // 学号
public string Name; // 姓名
public string Department; // 院系
// 字符串数组,代表课程列表
private string[] Courses;
// 定义属性以便于访问和修改字段
public string NameProperty { get => Name; set => Name = value; }
public string DepartmentProperty { get => Department; set => Department = value; }
// 定义虚方法(Virtual Method),用于显示姓名和学号
public virtual void DisplayInfo()
{
Console.WriteLine($"Name: {Name}");
Console.WriteLine($"ID: {ID}");
}
// 构造函数
public Student(int id, string name, string department)
{
ID = id;
Name = name;
Department = department;
Courses = new string[0]; // 初始化为空数组
}
// 添加一个公开的方法添加课程到课程列表
public void AddCourse(string course)
{
Courses =Courses.ToList().Add(course);
}
}
```
阅读全文