import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param message string字符串
     * @param keyword string字符串
     * @return int整型
     */
    public int findKeyword (String message, String keyword) {
        // write code here
        int keywordLength = keyword.length();
        int messageLength = message.length();

        for (int i = 0; i <= messageLength - keywordLength; i++) {
            if (message.substring(i, i + keywordLength).equals(keyword)) {
                return i; // 返回关键词起始位置的下标
            }
        }

        return -1; // 关键词未出现,返回 -1
    }
}

编程语言是Java。

这道题考察的主要知识点包括:

  1. 字符串操作:在信息字符串中查找子串。
  2. 循环遍历:遍历信息字符串的每个可能的起始位置。

以下是代码的解释:

  • findKeyword 方法接受两个字符串参数,message 表示一串信息,keyword 表示关键词。
  • 获取关键词和信息的长度。
  • 使用循环从信息的开头开始,遍历信息字符串的每个可能的起始位置,不超过 messageLength - keywordLength,以避免越界。
  • 在每个起始位置,使用 substring 方法截取与关键词长度相等的子串,然后与关键词进行比较。
  • 如果截取的子串与关键词相等,说明找到了关键词的起始位置,返回该位置的下标。
  • 如果循环结束后仍未找到关键词,返回 -1。