如何搜索子串

时间:2017-04-14 21:49:35

标签: java string loops

我正在寻找字符串中的“tip”和“top”等模式 - 长度为3,以“t”开头,以“p”结尾。目标是返回一个字符串,对于所有这些单词,中间字母不见了。例如,“tipXtap”产生“tpXtp”。

到目前为止,我已经考虑过使用递归和replace()方法,但我不确定这是否是解决此问题的最佳方法。

到目前为止,这是我的代码:

VCorpus

3 个答案:

答案 0 :(得分:2)

使用此Java代码:

String str = "tipXtap";
str = str.replaceAll("t.p", "tp");

这使用regular expressionsString.replaceAll功能。 .(点)字符为regex metacharacter that matches any single character

答案 1 :(得分:1)

这样做的一种方法。

  1. 将String转换为char数组。

  2. 使用条件来验证第一个字母的第一个和第三个字母。首先看一下String的char是否为T然后检查char两个字符是否为' p'。你必须在遍历char数组的循环中执行此操作。

  3. 如果验证条件为true,则删除中间元素。您必须在char数组中移动元素。

  4. 将char数组转换为String并返回它。

  5. 希望这有帮助。

答案 2 :(得分:-1)

这是使用正则表达式解决此问题的JavaScript解决方案:

foo = 'tipXtop'
foo.replace(/t\wp/g, 'tp')

\w正则表达式运算符匹配单词字符,如a-z,A-Z,0-9或_。

g正则表达式标志将匹配字符串中正则表达式的所有实例。