📄
字号:
if (pivotal2[i3].equals(subS)) { String p = rSet.getString("content"); System.out.println("分词选择:" + p + "\n"); mime.setMessage(p); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + p); br = 1; break; } } } } } if (br == 0) { //如果比较没结果 int count = (int) (Math.random() * 78); String sqlStr2 = "SELECT * FROM cope WHERE copeid =" + count + ""; ResultSet rs = statement.executeQuery(sqlStr2); rs.next(); String returnInfo1 = rs.getString(2); mime.setMessage(returnInfo1 + "\r\n" + "[如果你想告诉我正确的答案,请按照 study,问题,答案 的格式教我!-_-!]"); System.out.print(returnInfo1 + "\n"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + returnInfo1); } statement.close(); connection.close(); } //分词结束 else { String s = ""; String s2 = rSet.getString(2); int a = 0; while (rSet.next()) { s = s + "$" + rSet.getString(2); a++; } if (a != 0) { StringTokenizer stt = new StringTokenizer(s, "$"); String[] subStrt2 = new String[stt.countTokens()]; for (int i = 0; i < subStrt2.length; i++) { subStrt2[i] = stt.nextToken(); } int count; count = (int) (Math.random() * a); s = subStrt2[count]; } else { s = s2; } String returnInfo2 = ""; if (s.indexOf("$n") > 0) { //换行 StringTokenizer st = new StringTokenizer(s, "$n"); String[] subStr = new String[st.countTokens()]; for (int i = 0; i < subStr.length; i++) { subStr[i] = st.nextToken(); returnInfo2 = returnInfo2 + subStr[i] + "\r\n"; } mime.setMessage(returnInfo2); System.out.print(returnInfo2 + "\n"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + returnInfo2);
} else { mime.setMessage(s); System.out.print(s + "\n"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + s); } statement.close(); connection.close(); } } catch (Exception ex) { ex.printStackTrace(); } } } else if (mime.getMessage().indexOf("->") >= 0) { //判断模式结束 google搜索换页开始 String titleall = ""; StringTokenizer st2 = new StringTokenizer(searchcon, "$"); String[] subStr2 = new String[st2.countTokens()]; for (int i = 0; i < subStr2.length; i++) { subStr2[i] = st2.nextToken(); } int a = 0; while (!subStr2[a].equals(friend.getLoginName())) { a++; } StringTokenizer stk = new StringTokenizer(mime.getMessage(), "->"); String[] subStrk = new String[stk.countTokens()]; for (int i = 0; i < subStrk.length; i++) { subStrk[i] = stk.nextToken(); } try { GoogleSearch search = new GoogleSearch(); search.setKey("AhGBLehQFHICcFbB5lYF9lDTZ4G71AzH"); search.setQueryString(subStr2[a + 1]); int aa = Integer.parseInt(subStrk[1]); if (aa * 10 < 0) { mime.setMessage("错误,无法翻页"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:翻页错误"); } else { int startResult = aa * 10; search.setStartResult(startResult); int maxResult = 10; search.setMaxResults(maxResult); GoogleSearchResult result = search.doSearch(); int numResults = result.getEstimatedTotalResultsCount(); int numResults2 = numResults / 10; GoogleSearchResultElement[] resultElements = result. getResultElements(); int startIndex = result.getStartIndex() - 1 - startResult; int endIndex = result.getEndIndex() - 1 - startResult; for (int i = startIndex; i <= endIndex; i++) { GoogleSearchResultElement resultElement = resultElements[ (i)]; String title = resultElement.getTitle(); StringTokenizer st3 = new StringTokenizer(title, "<b>"); String[] subStr3 = new String[st3.countTokens()]; String title2 = ""; for (int i2 = 0; i2 < subStr3.length; i2++) { subStr3[i2] = st3.nextToken(); title2 = title2 + subStr3[i2]; } StringTokenizer st4 = new StringTokenizer(title2, "</b>"); String[] subStr4 = new String[st4.countTokens()]; String title3 = ""; for (int i3 = 0; i3 < subStr4.length; i3++) { subStr4[i3] = st4.nextToken(); title3 = title3 + subStr4[i3]; } String url = resultElement.getURL(); titleall = titleall + title3 + "\r\n" + url + "\r\n"; System.out.println(title); System.out.println(url); } if (startResult == 0) { mime.setMessage(titleall + "\r\n搜索结果共" + numResults2 + "页\r\n当前页:" + aa + "\r\n看其他纪录输入:go->页数"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:google搜索成功"); } else { mime.setMessage(titleall + "\r\n搜索结果共" + numResults2 + "页\r\n当前页:" + aa + "\r\n看其他页纪录输入:go->页数;看第一页纪录输入:go->0"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:google搜索成功"); } } } catch (Exception gsf) { mime.setMessage("Google Search Fault: " + gsf); //.getMessage()); System.out.println("Google Search Fault: " + gsf); //.getMessage()); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:google搜索失败"); } } else { //google搜索换页结束 try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection = DriverManager.getConnection(url); statement = connection.createStatement(); String sqlStr1 = "SELECT question,answer FROM holophrase WHERE question like '%" + mime.getMessage() + "%'"; rSet = statement.executeQuery(sqlStr1); if (rSet.next() == false) { //分词开始 int br = 0; //比较有结果为1 String key = mime.getMessage(); for (int i = key.length(); i > 1; i--) { if (br == 1) { break; } for (int num = 0; num + i <= key.length(); num++) { if (br == 1) { break; } String subS = key.substring(num, num + i); String sqlKey = "select * from pivotal order by pivotalid"; rSet = statement.executeQuery(sqlKey); while (rSet.next()) { if (br == 1) { break; } String pivotal = rSet.getString("pivotal");
StringTokenizer pivotal1 = new StringTokenizer(pivotal, "/"); String[] pivotal2 = new String[pivotal1.countTokens()]; for (int i3 = 0; i3 < pivotal2.length; i3++) { pivotal2[i3] = pivotal1.nextToken();
if (pivotal2[i3].equals(subS)) { String p = rSet.getString("content"); System.out.println("分词选择:" + p + "\n"); mime.setMessage(p); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + p); br = 1; break; } } } } } if (br == 0) { //如果比较没结果 int count = (int) (Math.random() * 78); String sqlStr2 = "SELECT * FROM cope WHERE copeid =" + count + ""; ResultSet rs = statement.executeQuery(sqlStr2); rs.next(); String returnInfo1 = rs.getString(2); mime.setMessage(returnInfo1 + "\r\n" + "[如果你想告诉我正确的答案,请按照 study,问题,答案 的格式教我!-_-!]"); System.out.print(returnInfo1 + "\n"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + returnInfo1); } statement.close(); connection.close(); } //分词结束 else { String s = ""; String s2 = rSet.getString(2); int a = 0; while (rSet.next()) { s = s + "$" + rSet.getString(2); a++; } if (a != 0) { StringTokenizer stt = new StringTokenizer(s, "$"); String[] subStrt2 = new String[stt.countTokens()]; for (int i = 0; i < subStrt2.length; i++) { subStrt2[i] = stt.nextToken(); } int count; count = (int) (Math.random() * a); s = subStrt2[count]; } else { s = s2; } String returnInfo2 = ""; if (s.indexOf("$n") > 0) { //换行 StringTokenizer st = new StringTokenizer(s, "$n"); String[] subStr = new String[st.countTokens()]; for (int i = 0; i < subStr.length; i++) { subStr[i] = st.nextToken(); returnInfo2 = returnInfo2 + subStr[i] + "\r\n"; } mime.setMessage(returnInfo2); System.out.print(returnInfo2 + "\n"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + returnInfo2); } else { mime.setMessage(s); System.out.print(s + "\n"); msnmsg("#机器人回答:" + friend.getFriendlyName() + ",内容:" + s); } statement.close(); connection.close(); } } catch (Exception ex) { ex.printStackTrace(); } } }
try { //输出 messenger.sendMessage(friend.getLoginName(), mime); } catch (IOException ex1) {} //输出
} //对话结束 }
/** * 登录成功后执行该方法 */ public void loginComplete(MsnFriend own) { System.out.println(own.getLoginName() + " Login OK"); msnmsg("*系统消息:" + own.getLoginName() + "登陆成功"); }
/** * 登录失败后执行该方法 */ public void loginError(String header) { System.out.println("Login Failed: " + header); msnmsg("*系统消息:登陆失败" + header); }
/** * 好友离线时执行该方法 */ public void userOffline(String loginName) { System.out.println("USER " + loginName + " Logout."); msnmsg("*系统消息:" + loginName + "下线"); }
/** * 好友上线时执行该方法 */ public void userOnline(MsnFriend friend) { System.out.println("USER " + friend.getFriendlyName() + " Login."); msnmsg("*系统消息:" + friend.getFriendlyName() + "上线");
}
/** * 有人加我为好友时执行 */ public void whoAddedMe(MsnFriend friend) { System.out.println("USER " + friend.getLoginName() + " Addme."); msnmsg("*系统消息:" + friend.getLoginName() + " 将我加入好友"); try { messenger.addFriend(friend.getLoginName()); msnmsg("*系统消息:" + friend.getLoginName() + " 加入我的好友"); } catch (Exception e) { e.printStackTrace(); } }
/** * 有人把我从好友列表中删除时执行 */ public void whoRemovedMe(MsnFriend friend) { System.out.println("USER " + friend.getLoginName() + " Remove me."); msnmsg("*系统消息:" + friend.getLoginName() + " 将我删除"); try { messenger.removeFriend(friend.getLoginName()); msnmsg("*系统消息:" + friend.getLoginName() + " 被我删除"); } catch (Exception e) { e.printStackTrace(); } }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -