我见过这种事情的“拆分字符串”,但我需要一些具体的东西。我需要程序来识别用户是否把一个特定的单词放入句子中。我正在用它来编写一个非常、非常粗制滥造的基本AI程序。
如果用户输入类似于“您的名字是什么?”它将识别出用户说的是" name“,并转到随机名称生成器。
从句子中抓取特定单词(忽略大小写)以便稍后使用它的代码是什么(比如在if-else或其他东西中)?
发布于 2013-12-20 14:59:16
可以使用支持Java中单词边界正则表达式
Pattern patt = Pattern.compile("\\bname\\b");
Matcher m = patt.matcher(" v padaname bla");
System.out.println(m.find());
m = patt.matcher(" your name?");
System.out.println(m.find());发布于 2013-12-20 14:32:26
就我个人而言,我会这样做:
if(string.toLowerCase().contains(" name")){
//Random Name generator
}编辑:在进一步修订后,我相信正则表达式是答案,正则表达式"\bname\b"将会工作,但是您需要在java中转义它,所以"\\bname\\b" ... @JosefN的答案就是您想要的答案。
发布于 2013-12-20 14:46:55
不要盲目地使用contains()方法...
public static void main(String[] args) {
String str = "hello my name is someGuy";
System.out.println(str.contains("name"));
String strNew = "hello my namespace is Test";
System.out.println(strNew.contains("name"));
}
OP : true
true使用“JosefN”的答案...
https://stackoverflow.com/questions/20697638
复制相似问题