如何在空格之前和之后在Java中剪切单词

时间:2019-01-17 14:27:11

标签: java

可以帮我吗? 我只想从下面的字符串中获取指定的WORD。

String test1="This is WORD test".

我这样做了:

String regex = "\\s*\\bWORD\\b\\s*";
Text= test1.replaceAll(regex, " ");

我得到了:This is test

但是我想要的却是相反的:我只希望与正则表达式匹配的部分。

有时候我的字符串可能是:

String test2="WORD it is the text"
String test3="Text WORD"

但是一直以来,我只想剪切指定的单词并放入其他字符串。谢谢

2 个答案:

答案 0 :(得分:0)

使用正则表达式的简单解决方案,其中我仅检查单词是否被空格包围或在行后的空格开头或在行前的空格结尾处。

String regex = "( WORD )|(^WORD )|( WORD$)";

Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(test1);

if (m.find()) {
    System.out.println("[" + m.group(0).trim() + "]");
}

答案 1 :(得分:-1)

编辑

解决此问题的一种可能方法

String test1 = "This is WORD test";
String wordToFind = "WORD";
String message = "";

int k = 0;

for (int i = -1; (i = test1.indexOf(wordToFind, i + 1)) != -1; i++) {
    k = i;
}

String s = test1.substring(k, k+ (wordToFind.length()));
if(s.equals(wordToFind)){
    message = s;
} else {
    message = "The word \"" + wordToFind + "\" was not found in \"" + test1 + "\"";
}

System.out.print(message);