例如,我有一个字符串变量行
(line.contains("for") || line.contains("def") || line.contains("if") || line.contains("while") || line.contains("else") || line.contains("elif")
并且我想在此条件语句中为关键字设置一个新的字符串变量关键字,这将如何做到这一点,就像关键字=关键字在行中一样。
答案 0 :(得分:4)
在这种情况下,Stream提供了一种简单而优雅的解决方案:
String keyword = Stream.of("elif", "for", "def", "if", "while", "else")
.filter(line::contains)
.findFirst()
.orElse("no-keyword-found");
注意:“ elif”必须放在“ if”之前
答案 1 :(得分:0)
替代此处:
List<String> keywords = new LinkedList<String>;
keywords.add("for"); // put your keywords in a list
keywords.add("def");
keywords.add("if");
keywords.add("else");
String strword;
for(keyword:keywords){
if(line.contains(keyword)){
String strword = keyword;
}
}
答案 2 :(得分:0)
为什么不这样?
public static Optional<String> getFirstMatch(String string, String... subStrings)
{
return Arrays.stream(subStrings).filter(string::contains).findFirst();
}
样品用量:
Optional<String> match = getFirstMatch("myInput", "my", "Input");
if (match.isPresent())
{
String foo = match.get();
//...
}