在 Java 中使用 StringTokenizer 检查几个项目
Check several items with StringTokenizer in Java
我需要检查一个包含多个单词的字符串是否在另一个字符串的开头。例如,我有一个包含以下内容的字符串列表:
"in the morning"、"in the evening" 等,我想检查我的字符串 st = "in the evening at 5" 是否以列表中的任何字符串开头。我需要一个布尔值答案,最好是一个 StringTokenizer 和剩余部分 "at 5".
我的问题是,现在我的字符串 st 被 StringTokenizer 拆分(出于不同的原因我需要它),所以我不能只使用 substring 或 indexOf 方法来检查它是否包含在内。
有什么简单的方法吗?或者有没有办法将 Tokenizer 的剩余项再次转换为字符串?
谢谢
试试这个:
String sStr = "in the morning";
String str = "in the morning at 5";
List<String> searchStringList = new ArrayList<String>();
searchStringList.add(sStr);
for(String searchString : searchStringList) {
if(str.startsWith(searchString)) {
return true;
}
}
也许是这样的?
private static String[] keys = {"in the morning", "in the evening"};
class Hit {
String key;
String remainder;
Hit(String key, String remainder) {
this.key = key;
this.remainder = remainder;
}
}
public Optional<Hit> findHit(String input) {
for(String key : keys) {
if (input.startsWith(key)) {
return Optional.of(new Hit(key, input.substring(key.length())));
}
}
return Optional.empty();
}
编辑:相关问题Get Position in Original String from `StringTokenizer`
我需要检查一个包含多个单词的字符串是否在另一个字符串的开头。例如,我有一个包含以下内容的字符串列表: "in the morning"、"in the evening" 等,我想检查我的字符串 st = "in the evening at 5" 是否以列表中的任何字符串开头。我需要一个布尔值答案,最好是一个 StringTokenizer 和剩余部分 "at 5".
我的问题是,现在我的字符串 st 被 StringTokenizer 拆分(出于不同的原因我需要它),所以我不能只使用 substring 或 indexOf 方法来检查它是否包含在内。
有什么简单的方法吗?或者有没有办法将 Tokenizer 的剩余项再次转换为字符串?
谢谢
试试这个:
String sStr = "in the morning";
String str = "in the morning at 5";
List<String> searchStringList = new ArrayList<String>();
searchStringList.add(sStr);
for(String searchString : searchStringList) {
if(str.startsWith(searchString)) {
return true;
}
}
也许是这样的?
private static String[] keys = {"in the morning", "in the evening"};
class Hit {
String key;
String remainder;
Hit(String key, String remainder) {
this.key = key;
this.remainder = remainder;
}
}
public Optional<Hit> findHit(String input) {
for(String key : keys) {
if (input.startsWith(key)) {
return Optional.of(new Hit(key, input.substring(key.length())));
}
}
return Optional.empty();
}
编辑:相关问题Get Position in Original String from `StringTokenizer`