字符串前缀的严格定义
在计算机科学和形式语言理论中,前缀的定义如下:
数学定义
设字符串 s=s1s2...sns=s1s2...sn(长度为 nn),则字符串 pp 是 ss 的前缀当且仅当:
∃k∈[0,n] 使得 p=s1s2...sk∃k∈[0,n] 使得 p=s1s2...sk
其中:
-
k=0k=0 时,p=εp=ε(空字符串)
-
k=nk=n 时,p=sp=s(字符串本身)
核心要点
| 性质 | 说明 |
|---|---|
| 空串是前缀 | 空字符串 εε 是所有字符串的前缀 |
| 本身是前缀 | 一个字符串是它自己的前缀 |
| 连续开头 | 前缀必须从第一个字符开始连续取 |
示例
对于字符串 "hello":
| k 值 | 前缀 |
|---|---|
| 0 | ""(空串) |
| 1 | "h" |
| 2 | "he" |
| 3 | "hel" |
| 4 | "hell" |
| 5 | "hello"(本身) |
相关概念对比
| 概念 | 定义 | 示例(s = "hello") |
|---|---|---|
| 前缀 | 从开头取的连续子串 | "he", "hello" |
| 真前缀 | 前缀且长度 < 原串 | "he",但不包括 "hello" |
| 后缀 | 从结尾取的连续子串 | "lo", "hello" |
| 子串 | 任意位置的连续子串 | "ell", "hel", "lo" |
startsWith() 是 Java 中 String 类提供的一个内置方法 ,用于判断一个字符串是否以指定的前缀开头。
基本用法
java
public boolean startsWith(String prefix)
-
返回值 :
true或false -
参数:要检查的前缀字符串