java實(shí)現(xiàn)自動(dòng)回復(fù)聊天機(jī)器人
本文實(shí)例為大家分享了java實(shí)現(xiàn)自動(dòng)回復(fù)聊天機(jī)器人的具體代碼,供大家參考,具體內(nèi)容如下
聊天機(jī)器人
調(diào)用網(wǎng)上現(xiàn)有的接口,然后解析數(shù)據(jù)
以上是演示圖片
基本工作流程就是,調(diào)用API,解析返回的數(shù)據(jù)
HttpUtil類,調(diào)用API,獲取返回的數(shù)據(jù)
package com; import com.sun.org.apache.bcel.internal.generic.INSTANCEOF; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; /** * Created by zf on 2017/2/27. */ public class HttpUtil { private static final String API = "xxxxxxxxxxxxxxxxx"; private static String MSG; private static HttpUtil INSTANCE; public static HttpUtil getInstance() { if (INSTANCE == null) { INSTANCE = new HttpUtil(); } return INSTANCE; } private HttpUtil() { } public String sendRequest2API(String msg) { if (msg.length() > 0) { this.MSG = msg; HttpURLConnection connection = null; StringBuilder response = new StringBuilder(); try { URL url = new URL(API + MSG); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(8000); connection.setReadTimeout(8000); InputStream in = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; while ((line = reader.readLine()) != null) { response.append(line); } } catch (Exception e) { e.printStackTrace(); } finally { if (connection != null) { connection.disconnect(); } return response.toString(); } } return null; } }
UI類,界面
package com; import com.google.gson.Gson; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; /** * Created by zf on 2017/2/27. */ public class MainUI { private JFrame jFrame; private JPanel jPanel; private JButton sendMsgBtn; private JTextArea msgTextArea; private JTextArea historyTextArea; private static String MSG; private static StringBuilder history = new StringBuilder(); public MainUI() { jFrame = new JFrame("自動(dòng)聊天"); jPanel = new JPanel(); sendMsgBtn = new JButton("發(fā)送"); msgTextArea = new JTextArea("這里發(fā)生消息"); historyTextArea = new JTextArea(20,20); historyTextArea.setBackground(new Color(255, 255, 255)); jPanel.add(historyTextArea); jPanel.add(msgTextArea); jPanel.add(sendMsgBtn); jFrame.add(jPanel); jFrame.setSize(500, 500); jFrame.setLocationRelativeTo(null); jFrame.setVisible(true); sendMsgBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { MSG = msgTextArea.getText(); history.append("我:" + "\n" + MSG + "\n"); Gson gson = new Gson(); RobotAnswer robotAnswer = gson.fromJson(HttpUtil.getInstance().sendRequest2API(MSG), RobotAnswer.class); history.append(robotAnswer.getAnswer()); historyTextArea.setText(history.toString()); System.out.println(history); } }); } public static void main(String[] args) { new MainUI(); } }
機(jī)器人回復(fù)類
package com; import java.util.Date; /** * Created by zf on 2017/2/27. */ public class RobotAnswer { private int result; private String content; private String answer; public RobotAnswer() { } public String getAnswer() { if (result == 0) { answer = "AI:" + "\n" + content; } else { answer = "....."; } return answer; } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用Java和WebSocket實(shí)現(xiàn)網(wǎng)頁聊天室實(shí)例代碼
- java socket實(shí)現(xiàn)聊天室 java實(shí)現(xiàn)多人聊天功能
- java聊天室的實(shí)現(xiàn)代碼
- 基于Java Socket實(shí)現(xiàn)一個(gè)簡(jiǎn)易在線聊天功能(一)
- Java基于socket實(shí)現(xiàn)簡(jiǎn)易聊天室實(shí)例
- java Socket實(shí)現(xiàn)網(wǎng)頁版在線聊天
- java中UDP簡(jiǎn)單聊天程序?qū)嵗a
- java實(shí)現(xiàn)一個(gè)簡(jiǎn)單TCPSocket聊天室功能分享
- 基于java編寫局域網(wǎng)多人聊天室
- javaGUI實(shí)現(xiàn)多人聊天功能
相關(guān)文章
Springboot事件和bean生命周期執(zhí)行機(jī)制實(shí)例詳解
這篇文章主要介紹了Springboot事件和bean的生命周期執(zhí)行機(jī)制,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03springcloud本地服務(wù)不注冊(cè)到注冊(cè)中心的解決方案
這篇文章主要介紹了springcloud本地服務(wù)不注冊(cè)到注冊(cè)中心,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07Mybatis的collection三層嵌套查詢方式(驗(yàn)證通過)
這篇文章主要介紹了Mybatis的collection三層嵌套查詢方式(驗(yàn)證通過),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解
這篇文章主要介紹了Java基礎(chǔ)之動(dòng)態(tài)代理Cglib詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05java中TCP實(shí)現(xiàn)回顯服務(wù)器及客戶端
本文主要介紹了java中TCP實(shí)現(xiàn)回顯服務(wù)器及客戶端,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02