从句子中取出单词

时间:2013-12-20 06:29:10

标签: java artificial-intelligence

我见过这种事情的“分裂字符串”,但我需要特定的东西。我需要该程序来识别用户是否将特定单词放入句子中。我正在用它编写一个非常非常粗暴的基本AI程序。

如果用户输入的内容如“你的名字是什么?”它将识别用户说“名称”并转到随机名称生成器。

从一个句子中抓取一个特定单词(忽略大小写)的代码是什么,以便我以后可以使用它(比如if-else或其他东西)?

3 个答案:

答案 0 :(得分:3)

可以在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());

答案 1 :(得分:1)

就个人而言,我会这样做:

if(string.toLowerCase().contains(" name")){
//Random Name generator
}

编辑: 进一步修改后,我相信正则表达式是正确的,正则表达式"\bname\b"可以工作,但你需要为java转义它"\\bname\\b" ... @ JosefN的回答是你的答案想.. ..

答案 2 :(得分:0)

不要盲目地使用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”的答案......