【发布时间】:2016-03-30 20:50:26
【问题描述】:
我在一个数组中有一对字符串来检查另一个字符串:
String[] validPair = "{"[BOLD]", "[/BOLD]" };
String toCheck = "Example [BOLD]bold long text[/BOLD] other example [BOLD]bold short[/BOLD]";
我需要检查标签的平衡,我知道如何检查一个字符串是否在另一个字符串中,以及如何使用字符串中的indexOf 和validPair 内容并保存引用来实现这一点,但是一种丑陋的方式,我不想重新发明轮子。
类似:
int lastIndex = 0;
while (lastIndex != -1) {
int index = toCheck.findNextOccurrence(validPair, lastIndex); // here use indexOf
System.out.println(index);
lastIndex = index;
}
我在猜测是否有办法可以检查String[] validPair 中String[] validPair 中的任何字符串的nextOccurrence String toCheck?
一种Iterator 或Tokenizer,但不拆分字符串并仅给出array(或List 或任何其他Object)内容的出现次数。
或者:
OwnIterator ownIterator = new OwnIterator<String>(toCheck, validPair);
while (toCheck.hasNext()) {
String next = toCheck.findNextOccurrence();
System.out.println(next);
}
输出:
[BOLD]
[/BOLD]
[BOLD]
[/BOLD]
【问题讨论】:
-
整个事情的期望输出是什么?只是是/否标签是否平衡或索引元组,或者。 ..?到目前为止,您究竟尝试了什么来获得该输出?
-
validPair中任何出现的下一个索引我将更新 -
@luk2302 请检查我的更新
-
您可能想研究正则表达式,构建一个表示打开标签、内容和结束标签的集合。不过,如果标签不能嵌套,那会容易得多。
标签: java arrays string iterator