| | |
| | | public class ItemAnswerParser extends Parser { |
| | | |
| | | /** |
| | | * 参考答案[带括号] |
| | | * 参考答案[带括号] |
| | | */ |
| | | private static final String answerWithBracketsStr = "\\([ABCDEFGHIJKLMNOabcdefghijklmno√╳×TFtf]+\\)"; |
| | | private static final String answerWithBracketsStr = "\\([ABCDEFGHIJKLMNOabcdefghijklmno√╳×TFtf]+\\)"; |
| | | |
| | | /** |
| | | * 参考答案 |
| | | * 参考答案 |
| | | */ |
| | | private static final String answerStr = "[ABCDEFGHIJKLMNOabcdefghijklmno√╳×TFtf]+"; |
| | | private static final String answerStr = "[ABCDEFGHIJKLMNOabcdefghijklmno√╳×TFtf]+"; |
| | | |
| | | /** |
| | | * 参考答案模式[带括号] |
| | | * 参考答案模式[带括号] |
| | | */ |
| | | private static final Pattern answerWithBrackets = Pattern.compile(answerWithBracketsStr); |
| | | |
| | | /** |
| | | * 参考答案模式 |
| | | * 参考答案模式 |
| | | */ |
| | | private static final Pattern answer = Pattern.compile(answerStr); |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 解析 Item 参考答案 |
| | | * 1.解析出类似 *** ( ab ) 这样的参考答案 |
| | | * 2.将类似参考答案 ( ab ) 替换成 ( ) |
| | | * 解析 Item 参考答案 |
| | | * 1.解析出类似 *** ( ab ) 这样的参考答案 |
| | | * 2.将类似参考答案 ( ab ) 替换成 ( ) |
| | | * @param item |
| | | * @param str |
| | | * @return |
| | | */ |
| | | private ParseResult parseAnswer(Item item, String str) { |
| | | |
| | | //习题选项 |
| | | //习题选项 |
| | | Matcher answerBracketsMatch = answerWithBrackets.matcher(str); |
| | | |
| | | //返回 |
| | | //返回 |
| | | if(!answerBracketsMatch.find() || answerBracketsMatch.start()==0){ |
| | | return new ParseResult(false,ParseResult.STEP_CUR,null); |
| | | } |
| | |
| | | item.setTitle(item.getTitle().replaceAll(answerWithBracketsStr, "( )")); |
| | | } |
| | | |
| | | //20150907修改:本来返回true,没有解析到一个类型,抛到上层 |
| | | //20150907修改:本来返回true,没有解析到一个类型,抛到上层 |
| | | return new ParseResult(false,ParseResult.STEP_PRE,null); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 处理answer |
| | | * 处理answer |
| | | * @param answer |
| | | * @return |
| | | */ |
| | | private String dealAnswer(String answer){ |
| | | if(StringUtils.equalsIgnoreCase("√",answer)||StringUtils.equalsIgnoreCase("√",answer)||StringUtils.equalsIgnoreCase("T",answer)){ |
| | | if(StringUtils.equalsIgnoreCase("√",answer)||StringUtils.equalsIgnoreCase("√",answer)||StringUtils.equalsIgnoreCase("T",answer)){ |
| | | return "True"; |
| | | } |
| | | if(StringUtils.equalsIgnoreCase("×",answer)||StringUtils.equalsIgnoreCase("╳",answer)||StringUtils.equalsIgnoreCase("F",answer)){ |
| | | if(StringUtils.equalsIgnoreCase("×",answer)||StringUtils.equalsIgnoreCase("╳",answer)||StringUtils.equalsIgnoreCase("F",answer)){ |
| | | return "False"; |
| | | } |
| | | return answer; |