如何将字符串变量设置为另一个变量中包含的字符串

时间:2018-10-02 12:43:31

标签: java string

例如,我有一个字符串变量行

(line.contains("for") || line.contains("def") || line.contains("if")    || line.contains("while") || line.contains("else") || line.contains("elif")

并且我想在此条件语句中为关键字设置一个新的字符串变量关键字,这将如何做到这一点,就像关键字=关键字在行中一样。

3 个答案:

答案 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();
    //...
}
相关问题