Java 检查一个字符串是否以任何给定的前缀开始
给定一个字符串和一个前缀数组。任务是检查给定的字符串是否以任何给定的前缀开始。
例子。
输入 :String = “GeeksforGeeks”, 前缀 = {“Geeks”, “for”, “Gfor” }
输出 :true
输入 :字符串 = “GeeksforGeeks”, 前缀 = {“Freaks”, “for”, “Freak” }
输出 : false
建议:请先在 {IDE}上尝试你的方法,然后再继续解决
以下是可以用来完成给定任务的方法。
- Naive 方法 : 这个方法涉及到明确检查每个前缀数组元素的字符串。
算法。
- 获取字符串和要匹配的前缀。
- 使用循环,遍历前缀并检查字符串是否以各自的前缀开始。这是在String.startsWith()方法的帮助下完成的。
- 如果任何前缀被匹配,则返回true,否则返回false。
程序 1:
输出:
程序 2:
输出:
- 使用正则表达式 :
算法。
1. 获取字符串和要匹配的前缀。
2. 形成一个正则表达式来检查字符串是否以任何前缀开始。这可以用String.matches()方法完成。
3. 如果有任何前缀被匹配,则返回true,否则返回false。
程序 1:
输出:
程序 2:
输出:
- 使用 Java 8 Streams API :
算法。
1. 获取字符串和要匹配的前缀。
2. 使用Stream.of()将前缀转换为流。
3. 使用Predicate str::startsWith检查是否有前缀匹配。这是用Stream.anyMatch()方法完成的。
4. 如果有任何前缀被匹配,则返回true,否则返回false。
程序 1:
输出:
程序 2:
输出: