首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从句子中抓取单词

从句子中抓取单词
EN

Stack Overflow用户
提问于 2013-12-20 14:29:10
回答 3查看 83关注 0票数 0

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

如果用户输入类似于“您的名字是什么?”它将识别出用户说的是" name“,并转到随机名称生成器。

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

EN

回答 3

Stack Overflow用户

发布于 2013-12-20 14:59:16

可以使用支持Java中单词边界正则表达式

代码语言:javascript
复制
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());
票数 3
EN

Stack Overflow用户

发布于 2013-12-20 14:32:26

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

代码语言:javascript
复制
if(string.toLowerCase().contains(" name")){
//Random Name generator
}

编辑:在进一步修订后,我相信正则表达式是答案,正则表达式"\bname\b"将会工作,但是您需要在java中转义它,所以"\\bname\\b" ... @JosefN的答案就是您想要的答案。

票数 1
EN

Stack Overflow用户

发布于 2013-12-20 14:46:55

不要盲目地使用contains()方法...

代码语言:javascript
复制
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”的答案...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20697638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档