[英]Grabbing text inbetween specific HTML tags using Java switch statement
我正在尝试获取文件中<AU></AU>
标记之间的文本,然后在新行上打印出结果。 我需要使用switch语句和一个名为CharacterFromFileReader的帮助程序类来做到这一点,该类一个接一个地读取文件中的每个字符。
到目前为止,这是我想出的代码:
package code;
import java.util.HashMap;
import util.general.CharacterFromFileReader;
public class HW4 {
String _toReturn = "";
public void authorScanner(String inputPath){
CharacterFromFileReader reader = new CharacterFromFileReader(inputPath);
int state = 0;
while(reader.hasNext()){
char c = reader.next();
switch(state){
case 0:
_toReturn = "";
if(c=='<'){
state = 1;
}
case 1:
if(c=='A'){
state = 2;
}
case 2:
if(c=='U'){
state = 3;
}
case 3:
if(c=='>'){
state = 4;
}
case 4:
if(c=='<'){
state = 5;
}
if(c != '<'){
_toReturn = _toReturn + c;
state = 4;
}
case 5:
if(c=='/'){
state = 6;
}
case 6:
if(c=='A'){
state = 7;
}
case 7:
if(c=='U'){
state = 8;
}
case 8:
if(c=='>'){
System.out.println(_toReturn);
state = 0;
}
else{
state = 0;
}
}
}
}
}
但是,当我运行authorScanner(test.xml);时,得到以下输出:
>
>
这是test.xml的内容:
<AU>AUTHOR</AU>
我究竟做错了什么? 我相信我已经设置了switch语句来搜索<AU>
,然后将以下字符附加到名为_toReturn的字符串中。 在将字符追加到字符串时,应检查字符'<',如果存在,请继续检查结束标记</AU>
。 如果存在结束标记,请打印出_toReturn。
关于如何编写适当解决方案的任何提示/建议?
看来您错过了break;
您在每种情况下的语句。 如果添加这些,看起来它可能会完成您的预期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.