📄 tagstack.java
字号:
package html_parser;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.LinkedList;
import java.util.ListIterator;
class NLineELink {
boolean isNewLine = false;
boolean isEndLink = false;
}
public class TagStack extends LinkedList<Tag> {
final static long serialVersionUID = 8273;
FileOutputStream dstFile;
public TagStack(FileOutputStream dstFile) {
this.dstFile = dstFile;
}
NLineELink pop(Tag dst) throws IOException {
boolean isPopable = isPopable(dst);
NLineELink ret = new NLineELink();
if (isPopable) {
while ( this.size() != 0 ) {
Tag oldTag = this.pop();
if (oldTag.isNewLine()) {
dstFile.write('\n');
ret.isNewLine = true;
}
if (oldTag.match("a")) {
ret.isEndLink = true;
}
if (oldTag.match(dst)) break;
}
}
return ret;
}
private boolean isPopable(Tag dst) {
ListIterator<Tag> iter = listIterator();
boolean isPopable = false;
while (iter.hasNext()) {
Tag oldTag = iter.next();
if (oldTag.match(dst)) {
isPopable = true;
break;
}
}
return isPopable;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -