我在Java中的Pattern.compile
中将两个单词与它们之间的空格进行匹配时遇到问题。
我的字符串是"What is your name?"
。
我的代码:
String namee = "What is your name?";
Pattern pattern = Pattern.compile("What is|Address is");
if (pattern.matcher(namee).find())
{
if (namee.equals("What is"))
{
namee = "name";
}
}
如果字符串包含"What is"
,我想要实现的目标,那么字符串本身应该更改为"name"
。但它没有空间...... ...
答案 0 :(得分:0)
尝试这样(为了安全;更好的代码可读性以及恕我直言):
Pattern pattern = Pattern.compile("(What is)|(Address is)")
但以下代码感觉不对:
if (namee.equals("What is"))
...
您可能想要使用刚刚创建的java.util.regex.Matcher
。例如:
Matcher matcher = pattern.matcher(namee);
if (matcher.find()) {
if (matcher.group().equals("What is")) {
...
}
}
答案 1 :(得分:0)
<强>解决方法1 强>
您可以使用matcher.group()
,然后点击Pattern pattern = Pattern.compile("What is|Address is");
Matcher matcher = pattern.matcher(namee);
if (matcher.find()) {
if (matcher.group().equals("What is")) {
namee = "name";
}
}
进行检查:
What is
<强>溶液2 强>
如果您想检查字符串是否包含Address is
或if(namee.contains("What is")){
namee = "What is";
}else if (namee.contains("Address is")){
namee = "....";
}
,那么您可以轻松使用:
What is
<强> Solution3 强>
如果您想检查字符串是以Address is
还是if(namee.startsWith("What is")){
namee = "What is";
}else if (namee.startsWith("Address is")){
namee = "....";
}
开头,那么您可以使用:
$scope.$apply()