欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用jsp实现成语接龙

程序员文章站 2022-03-21 16:27:55
...

使用jsp实现成语接龙

引子

成语接龙条件

设计和代码分析

引子:
我们在学习生活中总会遇到成语接龙,那么如果让你编写程序他又该如何实现呢,让我们快一起进行研究总结,将学到的东西学以致用。

成语接龙条件:

1.必须为四字词语
2.如果是第一个成语则可以忽略,否则需要判断该字的第一个词和上个词的最后一个词是否匹配,实现接龙。
3.该篇文章中我创建了一个文件,存放成语里面只有500成语,可以做简单的开发测试,如果要精准则可以在网上下载全部成语将部分代码进行修改。

设计和代码分析
一共使用两个jsp页面,第一个进行显示和输入成语,另一个则进行判断和传递返回值。
第一个显示页面(idiom.jsp),直接上代码(有不懂的地方可以私信问我哦):

age contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>成语接龙</title>
</head>
<body>
<h1>欢迎来到成语接龙</h1>
<h2>当前的成语进度为:</h2>

<%
 String s= (String) session.getAttribute("msg");
if(s!=null){
    out.println(s);
}
else {
    out.println("暂时没有成语,请进行输入");
}
%>
<br>
<form action="IdiomInformtion.jsp" method="post">
    输入成语:<input type="text" name="idioms">
    <input type="submit" value="提交">
</form>
</body>
</html>

其页面内容如下:
使用jsp实现成语接龙

此时为第一次打开该页面,之前并没有数据的输入,所以没有内容显示。可进行输入提交。
第二个页面:(IdiomInformtion.jsp) 三个判断条件,查询文件是否含有成语,若失败重新输入,成功则三秒后跳转到第一个页面显示迄今为止成语信息。

<%@ page import="java.io.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="utf-8" %>
<html>
<head>
    <title>成语接龙信息查看 </title>
</head>
<body>
<%!
String msg="";
%>
<%
request.setCharacterEncoding("utf-8");
    String idiom = request.getParameter("idioms");
    //判断长度是否合格
    if(idiom.length()!=4){
        out.println("成语的长度应该为4个字,请重新输入<br>");
        out.println("<a href=idiom.jsp>重新输入</a>");
        return;
    }
    //如果不是第一个则需要判断成语是否接龙,是第一个则不需要重新判断
    if(!msg.equals("")){
        if(msg.charAt(msg.length()-2)!=idiom.charAt(0)){
            out.println("请注意成语接龙规则:后一个成语的第一个字必须是前一个成语的最后一个字,请重新输入<br>");
            out.println("<a href=idiom.jsp>重新输入</a>");
            return;
        }
    }
    //判断是否是成语 在提供的成语库中进行查询  成语不全 可能有遗漏 误伤情况
    boolean isIdiom=false;
    BufferedReader br=null;
    try {
        br = new BufferedReader(
                new InputStreamReader(new FileInputStream("C:\\Users\\Lenovo\\IdeaProjects\\webDemo\\ServletDemo\\src\\information\\idiom.txt"),"utf-8"));
        String connection = br.readLine();
        while (connection != null) {
            if(connection.contains(idiom)) {
                out.println(idiom);
                isIdiom = true;
                break;
            }
            connection = br.readLine();
        }
    }
    catch (IOException e){
        e.printStackTrace();
    }
    if(isIdiom==false){
        out.println("你输入的不是成语,请重新输入");
        out.println("<a href=idiom.jsp>重新输入</a>");
        return;
    }

    msg+=idiom+" ";
    session.setAttribute("msg",msg);
    out.println("成语已经提交成功,三秒后自动跳转查看成语");
   response.setHeader("refresh","3;idiom.jsp");
%>
</body>
</html>

运行结果如下:
case1.输入的字数不等于4位:

使用jsp实现成语接龙
使用jsp实现成语接龙
点击重新输入则会返回刚才输入页面。
case2.输入的不是成语(即文件中不包含该成语)
使用jsp实现成语接龙

使用jsp实现成语接龙case3:
之前有成语了,但该成语的第一个字与上个成语的最后一个字不相同。
使用jsp实现成语接龙
使用jsp实现成语接龙
case4:
正确输入情况
使用jsp实现成语接龙
使用jsp实现成语接龙

使用jsp实现成语接龙

ps:
上文提到读成语文件,需要大家自行进行创建添加成语,若想简单实现成语接龙,忽略是否为成语,可以忽略此判断条件和内容。

简单的成语接龙就做好啦,大家有什么问题欢迎咨询哦。