我正在用java创建一个程序,它可以像开放程序一样为你做各种事情。 我想知道是否可以使用.split函数只记住必须拆分的部分后的1个单词。
这就是现在的工作方式;
User: Can you open chrome? (this is where the program looks for the word 'open' and saves all that comes after it)
Program: Sure, I'll open chrome for you. (chrome opens)
现在,我希望它只记住“打开”一词之后的第一个单词。 这可能吗? 如果是这样,最好的方法是什么?
答案 0 :(得分:1)
使用正则表达式获取open
之后的字符串可能是最灵活的方式:
public static void main(String args[]) {
String line = "Will you open chrome?";
//will get everything after open, including punctuation like the question mark.
//You need to modify the regex if that's not what you want.
String pattern = "open (.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println("Value after open is: " + m.group(1));
} else {
System.out.println("NO MATCH");
}
}
返回:Value after open is: chrome?
如果您不想要问号,请更新正则表达式以从匹配组中排除问号:
String pattern = "open (.*)\\?";
答案 1 :(得分:0)
最简单的方法:
String command=line.split("open\\s*\\b")[1];
您需要检查分割字符串的索引,依此类推,但这应该有效。