我见过这种事情的“分裂字符串”,但我需要特定的东西。我需要该程序来识别用户是否将特定单词放入句子中。我正在用它编写一个非常非常粗暴的基本AI程序。
如果用户输入的内容如“你的名字是什么?”它将识别用户说“名称”并转到随机名称生成器。
从一个句子中抓取一个特定单词(忽略大小写)的代码是什么,以便我以后可以使用它(比如if-else或其他东西)?
答案 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”的答案......