3 回答
TA贡献1796条经验 获得超4个赞
我觉得你做了一个不必要的验证检查,你可以简化如下。抱歉没有为参数使用有意义的名称。尝试从您的角度重新实现这一点。
public class AB {
public static boolean isConsecutive(String s, String a, String b) {
return s.indexOf(a + b) != -1;
}
public static void main(String args[]) {
System.out.println(AB.isConsecutive("chicken", "a", "b"));
System.out.println(AB.isConsecutive("frog", "f", "g"));
System.out.println(AB.isConsecutive("chicken", "c", "k"));
System.out.println(AB.isConsecutive("apluscompsci", "a", "s"));
System.out.println(AB.isConsecutive("apluscompsci", "a", "p"));
System.out.println(AB.isConsecutive("apluscompsci", "s", "c"));
System.out.println(AB.isConsecutive("apluscompsci", "c", "p"));
}
}
输出 :
false
false
true
false
true
true
false
TA贡献1946条经验 获得超3个赞
String 类已经提供了许多实用方法来执行多个操作,为什么不使用它们而不是重新发明轮子呢?只需将您的方法更改为
public static boolean check (String s, String a, String b) {
// check if combination of both strings (a+b) are present in 's'
return (s.contains(a+b)) ? true : false;
}
TA贡献1853条经验 获得超18个赞
您可以通过组合各个字母并检查它们的索引来简单地创建一个临时字符串。这段代码应该适合你。
import java.util.*;
public class Letters{
private static boolean CheckConsecutiveLetters(String str, String l1, String l2)
{
int index_l1 = str.indexOf(l1);
String temp = l1 + l2;
System.out.println(temp);
if(str.indexOf(temp) >= 0)
{
return true;
}
return false;
}
public static void main(String[] args)
{
boolean output = CheckConsecutiveLetters("chicken", "c", "k" );
System.out.println(output);
}
}
添加回答
举报