我正在尝试编写程序以任何方式检查字符串是否在另一个字符串内?我的意思不是包含方法。诸如字符串“ AgBgC”包含字符串“ ABC”或诸如“ browndcodw”包含“棕色”和“牛”之类的东西]
您可以执行以下操作,使用indexOf(int ch, int fromIndex)
搜索下一个字符:
indexOf(int ch, int fromIndex)
Test
static boolean containsCharsInOrder(String text, String chars) {
for (int idx = -1, i = 0; i < chars.length(); i++)
if ((idx = text.indexOf(chars.charAt(i), idx + 1)) == -1)
return false;
return true;
}
输出
System.out.println(containsCharsInOrder("AgBgC", "ABC"));
System.out.println(containsCharsInOrder("browndcodw", "brown"));
System.out.println(containsCharsInOrder("browndcodw", "cow"));
System.out.println(containsCharsInOrder("browndcodw", "rod"));
System.out.println(containsCharsInOrder("browndcodw", "dog"));
使用链接列表的简单解决方案:
true
true
true
true
false
基本上,如果第一个列表无法删除第二个列表中的字符,它将自动返回false。