﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-cavenaghi</title><link>http://www.blogjava.net/cavenaghi/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 10:54:52 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 10:54:52 GMT</pubDate><ttl>60</ttl><item><title>数据库连接大全!</title><link>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8551.html</link><dc:creator>Cavenaghi</dc:creator><author>Cavenaghi</author><pubDate>Wed, 27 Jul 2005 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8551.html</guid><wfw:comment>http://www.blogjava.net/cavenaghi/comments/8551.html</wfw:comment><comments>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cavenaghi/comments/commentRss/8551.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cavenaghi/services/trackbacks/8551.html</trackback:ping><description><![CDATA[<P>下面的是几种常见数据库系统的数据库连接方式</P>
<P>系统环境:win2003 + j2se5.0 + tomcat5.5.7</P>
<P>前提是你已经从网上已经下载了各个数据库的JDBC支持！<BR>把那些主要的工具包都放到Tomcat 5.5\common\lib就行！<BR>刨除那些入门的东西吧，现在开始步入正题！<BR>为了减少篇幅，更为了把问题说的直观，我已经把异常捕捉代码给去除了！</P>
<P>1.Microsoft SQL Server 2000</P>
<P>&nbsp;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); <BR>&nbsp;Connection conn= DriverManager.getConnection<BR>&nbsp;&nbsp;("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名字","sa","pwd"); <BR>&nbsp;Statement stmt=conn.createStatement();<BR>&nbsp;//增加和查询语句<BR>&nbsp;stmt.executeUpdate("insert into boya values('mssql','2000')");<BR>&nbsp;ResultSet rs=statement.executeQuery("select * from boya"); <BR>&nbsp;//显示记录<BR>&nbsp;while(rs.next()){<BR>&nbsp;&nbsp;out.print(rs.getString(1)+"&nbsp; "+rs.getString(2));<BR>&nbsp;&nbsp;out.println("&lt;br&gt;");<BR>&nbsp;}</P>
<P>2.MySQL 5.0</P>
<P>&nbsp;Class.forName("com.mysql.jdbc.Driver"); <BR>&nbsp;Connection conn = DriverManager.getConnection<BR>&nbsp;&nbsp;("jdbc:mysql://localhost/数据库名字?user=root&amp;password=pwd");<BR>&nbsp;Statement stmt=conn.createStatement();<BR>&nbsp;//增加和查询语句<BR>&nbsp;stmt.executeUpdate("insert into boya values('mysql','5.0')"); <BR>&nbsp;ResultSet rs=stmt.executeQuery("select * from boya");<BR>&nbsp;//显示记录<BR>&nbsp;while(rs.next()){<BR>&nbsp;&nbsp;out.print(rs.getString(1)+"&nbsp; "+rs.getString(2));<BR>&nbsp;&nbsp;out.println("&lt;br&gt;");<BR>&nbsp;}</P>
<P>3.PostgreSQL 8.0</P>
<P>&nbsp;//这个服务器的默认端口5432，如果更改了，代码也需要更改<BR>&nbsp;Class.forName("org.postgresql.Driver"); <BR>&nbsp;Connection conn=DriverManager.getConnection<BR>&nbsp;&nbsp;("jdbc:postgresql://localhost:5432/数据库名字?user=admin&amp;&amp;password=pwd");<BR>&nbsp;Statement stmt=conn.createStatement();<BR>&nbsp;//增加和查询语句<BR>&nbsp;stmt.executeUpdate("insert into boya values('mysql','5.0')");<BR>&nbsp;ResultSet rs=stmt.executeQuery("select * from boya");<BR>&nbsp;//显示记录<BR>&nbsp;while(rs.next()){<BR>&nbsp;&nbsp;out.print(rs.getString(1)+"&nbsp; "+rs.getString(2));<BR>&nbsp;&nbsp;out.println("&lt;br&gt;");<BR>&nbsp;}</P>
<P>4.ODBC</P>
<P>&nbsp;//in my opinion 会写ODBC就够了，现在PostgreSQL、MYSQL里也都有ODBC支持,但速度慢啊!<BR>&nbsp;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<BR>&nbsp;Connection conn=DriverManager.getConnection("jdbc:odbc:test","","");<BR>&nbsp;Statement stmt=conn.createStatement();<BR>&nbsp;//增加和查询语句<BR>&nbsp;stmt.executeUpdate("insert into boya values('mysql','5.0')");<BR>&nbsp;ResultSet rs=stmt.executeQuery("select * from boya");<BR>&nbsp;//显示记录<BR>&nbsp;while(rs.next()){<BR>&nbsp;&nbsp;out.print(rs.getString(1)+"&nbsp; "+rs.getString(2));<BR>&nbsp;&nbsp;out.println("&lt;br&gt;");<BR>&nbsp;}</P><img src ="http://www.blogjava.net/cavenaghi/aggbug/8551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cavenaghi/" target="_blank">Cavenaghi</a> 2005-07-27 15:19 <a href="http://www.blogjava.net/cavenaghi/archive/2005/07/27/8551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在JSP网页上实现月历 </title><link>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8538.html</link><dc:creator>Cavenaghi</dc:creator><author>Cavenaghi</author><pubDate>Wed, 27 Jul 2005 03:58:00 GMT</pubDate><guid>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8538.html</guid><wfw:comment>http://www.blogjava.net/cavenaghi/comments/8538.html</wfw:comment><comments>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8538.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/cavenaghi/comments/commentRss/8538.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cavenaghi/services/trackbacks/8538.html</trackback:ping><description><![CDATA[<P>在JSP网页上实现月历</P>
<P>JSP、月历</P>
<P>&lt;%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,java.text.*" %&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;月历&lt;/title&gt;<BR>&lt;/head&gt;<BR>&lt;body style="font-size:12px"&gt;<BR>&lt;%!<BR>&nbsp;/*声明变量*/<BR>&nbsp;String[] months = {"January", "February", "March", "April", "May", "June", <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "July", "August", "September", "October", "November", "December"};<BR>&nbsp;String[] months_cn = {"一月", "二月", "三月", "四月", "五月", "六月", <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; "七月", "八月", "九月", "十月", "十一月", "十二月"};<BR>&nbsp;public final static int dom[] = {<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31, 28, 31, 30,<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31, 30, 31, 31,<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30, 31, 30, 31<BR>&nbsp;};<BR>%&gt;<BR>&lt;%<BR>&nbsp;/*处理事件*/<BR>&nbsp;boolean yyok = false;<BR>&nbsp;int yy = 0, mm = 0;<BR>&nbsp;String yyString = request.getParameter("year");<BR>&nbsp;if (yyString != null &amp;&amp; yyString.length() &gt;0) {<BR>&nbsp;&nbsp;try {<BR>&nbsp;&nbsp;&nbsp;yy=Integer.parseInt(yyString);<BR>&nbsp;&nbsp;&nbsp;yyok=true;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch (NumberFormatException e) {<BR>&nbsp;&nbsp;&nbsp;out.println("年份不可用");<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;Calendar cal = Calendar.getInstance();<BR>&nbsp;&nbsp;if (!yyok)<BR>&nbsp;&nbsp;&nbsp;yy = cal.get(Calendar.YEAR);<BR>&nbsp;&nbsp;String mmString = request.getParameter("month");<BR>&nbsp;&nbsp;if (mmString == null) {<BR>&nbsp;&nbsp;&nbsp;mm = cal.get(Calendar.MONTH);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else {<BR>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; months.length; i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (months[i].equals(mmString)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mm = i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>%&gt;<BR>&lt;form name="cal" method=post action="cal.jsp"&gt;<BR>&nbsp;请选择月份:<BR>&nbsp;&nbsp;&lt;select name="month"&gt;<BR>&nbsp;&nbsp; &lt;%<BR>&nbsp;&nbsp; &nbsp;/*初始化表单*/<BR>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; months.length; i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (i == mm)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("&lt;option selected value=January&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("&lt;option value="+months[i]+"&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.print(months_cn[i]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.print("&lt;/option&gt;");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp; %&gt;<BR>&nbsp; &lt;/select&gt;<BR>&nbsp;&lt;br&gt;请输入年份：<BR>&nbsp;&nbsp; &lt;input type="text" size="5" name="year" value="&lt;%=yy%&gt;"&gt;&amp;nbsp;&amp;nbsp;<BR>&nbsp;&nbsp; &lt;input type="submit" value="显示"&gt;<BR>&lt;/form&gt;<BR>&lt;%<BR>&nbsp;int lead = 0;<BR>%&gt;<BR>&lt;table border="0" cellpadding="1" cellspacing="1" style="font-size:12px"&gt;<BR>&lt;tr height="20"&gt;&lt;td colspan="7"&gt;&lt;font color="#3399FF"&gt;&lt;b&gt;&lt;%= months[mm]%&gt;&nbsp; &lt;%= yy%&gt;&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;<BR>&lt;%&nbsp;GregorianCalendar calendar =&nbsp; new GregorianCalendar(yy, mm ,1);&nbsp;%&gt;<BR>&lt;tr&gt;&lt;td&gt;&lt;font color="#FF0000"&gt;Sun&lt;/font&gt;&lt;/td&gt;&lt;td&gt;Mon&lt;/td&gt;&lt;td&gt;Tue&lt;/td&gt;&lt;td&gt;Wed&lt;/td&gt;<BR>&lt;td&gt;Thu&lt;/td&gt;&lt;td&gt;Fri&lt;/td&gt;&lt;td&gt;&lt;font color="#FF0000"&gt;Sat&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;<BR>&lt;%<BR>&nbsp;/*下面是显示月历的代码*/<BR>&nbsp;lead = calendar.get(Calendar.DAY_OF_WEEK)-1;<BR>&nbsp;int dayInMonth = dom[mm];<BR>&nbsp;if (calendar.isLeapYear(calendar.get(Calendar.YEAR)) &amp;&amp; mm == 1)<BR>&nbsp;&nbsp;++dayInMonth;<BR>&nbsp;out.print("&lt;tr&gt;");<BR>&nbsp;for(int i = 0; i &lt; lead; i++) {<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;td&gt;&amp;nbsp;&lt;/td&gt;");<BR>&nbsp;}<BR>&nbsp;for(int i = 1; i &lt;= dayInMonth; i++) {<BR>&nbsp;&nbsp;if ((i+lead) % 7 == 0 || (i+lead) % 7 == 1)<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;td align=\"center\"&gt;&lt;font color=\"#FF0000\"&gt;"+i+"&lt;/font&gt;&lt;/td&gt;");<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;td align=\"center\"&gt;"+i+"&lt;/td&gt;");<BR>&nbsp;&nbsp;if ((lead+i) % 7 == 0) {<BR>&nbsp;&nbsp;&nbsp;out.print("&lt;/tr&gt;&lt;/tr&gt;");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;out.print("&lt;/tr&gt;");<BR>%&gt;<BR>&lt;/table&gt;<BR>&lt;/body&gt;<BR>&lt;/html&gt;</P><img src ="http://www.blogjava.net/cavenaghi/aggbug/8538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cavenaghi/" target="_blank">Cavenaghi</a> 2005-07-27 11:58 <a href="http://www.blogjava.net/cavenaghi/archive/2005/07/27/8538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>递归寻求迷宫出路 </title><link>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8537.html</link><dc:creator>Cavenaghi</dc:creator><author>Cavenaghi</author><pubDate>Wed, 27 Jul 2005 03:54:00 GMT</pubDate><guid>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8537.html</guid><wfw:comment>http://www.blogjava.net/cavenaghi/comments/8537.html</wfw:comment><comments>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8537.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/cavenaghi/comments/commentRss/8537.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cavenaghi/services/trackbacks/8537.html</trackback:ping><description><![CDATA[<P>迷宫文件boya.ice：</P>
<P>8<BR>9<BR>#########<BR>#s0##0###<BR>#0##00###<BR>#0##0####<BR>#0000####<BR>#0##0####<BR>#0##00e##<BR>#0000####</P>
<P>&nbsp;</P>
<P>package maze;<BR>import java.io.*;<BR>import java.util.*;<BR>public class Maze{<BR>&nbsp;private char[][] maze;//迷宫数组<BR>&nbsp;private int startX,startY,endX,endY;//迷宫起点，终点的位置<BR>&nbsp;private int x,y,step=0;//迷宫长宽及步骤<BR>&nbsp;//依据输入的文件名创建对象<BR>&nbsp;private Maze(String fileName){<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;LinkedList aList=new LinkedList();//用于存储文件每行的内容<BR>&nbsp;&nbsp;&nbsp;BufferedReader files=new BufferedReader(new FileReader("map\\"+fileName));<BR>&nbsp;&nbsp;&nbsp;//将每行的内容依次加入到LinkedList中<BR>&nbsp;&nbsp;&nbsp;String temp=new String();<BR>&nbsp;&nbsp;&nbsp;int i=0;<BR>&nbsp;&nbsp;&nbsp;while((temp=files.readLine())!=null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;aList.add(temp);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;files.close();<BR>&nbsp;&nbsp;&nbsp;//读取并设置迷宫的长宽<BR>&nbsp;&nbsp;&nbsp;x=Integer.parseInt((String)aList.getFirst())+2;<BR>&nbsp;&nbsp;&nbsp;aList.removeFirst();<BR>&nbsp;&nbsp;&nbsp;y=Integer.parseInt((String)aList.getFirst())+2;<BR>&nbsp;&nbsp;&nbsp;aList.removeFirst();<BR>&nbsp;&nbsp;&nbsp;//依据长宽对迷宫进行初始化<BR>&nbsp;&nbsp;&nbsp;maze=new char[x][y];<BR>&nbsp;&nbsp;&nbsp;//将迷宫的赋予外围墙<BR>&nbsp;&nbsp;&nbsp;for(i=0;i&lt;x;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;maze[i][0]='#';<BR>&nbsp;&nbsp;&nbsp;&nbsp;maze[i][y-1]='#';<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;for(i=0;i&lt;y;i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;maze[0][i]='#';<BR>&nbsp;&nbsp;&nbsp;&nbsp;maze[x-1][i]='#';<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;//将LinkedList中内容读入数组<BR>&nbsp;&nbsp;&nbsp;Iterator it=aList.iterator();<BR>&nbsp;&nbsp;&nbsp;i=1;<BR>&nbsp;&nbsp;&nbsp;char[] row;<BR>&nbsp;&nbsp;&nbsp;while(it.hasNext()){<BR>&nbsp;&nbsp;&nbsp;&nbsp;temp=((String)it.next());<BR>&nbsp;&nbsp;&nbsp;&nbsp;row=new char[y-2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;row=temp.toCharArray();<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int j=1;j&lt;y-1;j++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maze[i][j]=row[j-1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(maze[i][j]=='s'){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startX=i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startY=j;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maze[i][j]='0';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(maze[i][j]=='e'){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endX=i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endY=j;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maze[i][j]='0';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;i++;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(FileNotFoundException e){<BR>&nbsp;&nbsp;&nbsp;System.out.println("File Name Input Wrong!!!");<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(IOException e){<BR>&nbsp;&nbsp;&nbsp;System.out.println("Wrong Input!!!");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;//递归方法寻找路径<BR>&nbsp;private boolean findWay(int x,int y){<BR>&nbsp;&nbsp;if(maze[endX][endY]=='i')<BR>&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;if(maze[x][y]=='0'){<BR>&nbsp;&nbsp;&nbsp;&nbsp;maze[x][y]='i';<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(findWay(x-1,y))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if(findWay(x+1,y))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if(findWay(x,y+1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if(findWay(x,y-1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maze[x][y]='c';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else return false;<BR>&nbsp;}<BR>&nbsp;//打印迷宫路径<BR>&nbsp;private void show(){<BR>&nbsp;&nbsp;maze[startX][startY]='s';<BR>&nbsp;&nbsp;maze[endX][endY]='e';<BR>&nbsp;&nbsp;for(int i=1;i&lt;x-1;i++){<BR>&nbsp;&nbsp;&nbsp;for(int j=1;j&lt;y-1;j++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(maze[i][j]=='i'){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maze[i][j]=' ';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;step++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else if(maze[i][j]=='c') maze[i][j]='0';<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(maze[i][j]);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;System.out.println("");<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;System.out.println("I Have went "+step+" Steps To The End!");<BR>&nbsp;}<BR>&nbsp;public static void main(String arg[]){<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;System.out.println("Boya(8*9)\n"+"Ice(10*12)\n"+"Sky(15*17)\n"+"Input the map name:");<BR>&nbsp;&nbsp;&nbsp;BufferedReader is=new BufferedReader(new InputStreamReader(System.in));<BR>&nbsp;&nbsp;&nbsp;for(;;){<BR>&nbsp;&nbsp;&nbsp;&nbsp;String input=new String();<BR>&nbsp;&nbsp;&nbsp;&nbsp;input=is.readLine().trim();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(input.equals("q")) break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maze boya=new Maze(input+".ice");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(boya.findWay(boya.startX,boya.startY)){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boya.show();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else System.out.println("No Ways to the end!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Input another map name or input 'q' to quit:");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;is.close();<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(IOException e){<BR>&nbsp;&nbsp;&nbsp;System.out.println("Wrong Input!!!");<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(NullPointerException e){<BR>&nbsp;&nbsp;&nbsp;System.out.println("Wrong Input!!!");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}<BR></P><img src ="http://www.blogjava.net/cavenaghi/aggbug/8537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cavenaghi/" target="_blank">Cavenaghi</a> 2005-07-27 11:54 <a href="http://www.blogjava.net/cavenaghi/archive/2005/07/27/8537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据结构JAVA示例---逆波兰式求值! </title><link>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8536.html</link><dc:creator>Cavenaghi</dc:creator><author>Cavenaghi</author><pubDate>Wed, 27 Jul 2005 03:45:00 GMT</pubDate><guid>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8536.html</guid><wfw:comment>http://www.blogjava.net/cavenaghi/comments/8536.html</wfw:comment><comments>http://www.blogjava.net/cavenaghi/archive/2005/07/27/8536.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/cavenaghi/comments/commentRss/8536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cavenaghi/services/trackbacks/8536.html</trackback:ping><description><![CDATA[<P>package expression;<BR>public class Calculate{<BR>&nbsp;public static boolean isOperator(String operator){<BR>&nbsp;&nbsp;if(operator.equals("+")||operator.equals("-")||operator.equals("*")||operator.equals("/")||operator.equals("(")||operator.equals(")")) return true;<BR>&nbsp;&nbsp;else return false;<BR>&nbsp;}<BR>&nbsp;public static int priority(String operator){<BR>&nbsp;&nbsp;if(operator.equals("+")||operator.equals("-")||operator.equals("(")) return 1;<BR>&nbsp;&nbsp;else if(operator.equals("*")||operator.equals("/")) return 2;<BR>&nbsp;&nbsp;else return 0;<BR>&nbsp;}<BR>&nbsp;public static String twoResult(String operator,String a,String b){<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;String op=operator;<BR>&nbsp;&nbsp;&nbsp;String rs=new String();<BR>&nbsp;&nbsp;&nbsp;double x=Double.parseDouble(b);<BR>&nbsp;&nbsp;&nbsp;double y=Double.parseDouble(a);<BR>&nbsp;&nbsp;&nbsp;double z=0;<BR>&nbsp;&nbsp;&nbsp;if(op.equals("+")) z=x+y;<BR>&nbsp;&nbsp;&nbsp;else if(op.equals("-")) z=x-y;<BR>&nbsp;&nbsp;&nbsp;else if(op.equals("*")) z=x*y;<BR>&nbsp;&nbsp;&nbsp;else if(op.equals("/")) z=x/y;<BR>&nbsp;&nbsp;&nbsp;else z=0;<BR>&nbsp;&nbsp;&nbsp;return rs+z;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(NumberFormatException e){<BR>&nbsp;&nbsp;&nbsp;System.out.println("input has something wrong!");<BR>&nbsp;&nbsp;&nbsp;return "Error";<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>package expression;<BR>import java.util.*;<BR>public class Stacks{<BR>&nbsp;private LinkedList list=new LinkedList();<BR>&nbsp;int top=-1;<BR>&nbsp;public void push(Object value){<BR>&nbsp;&nbsp;top++;<BR>&nbsp;&nbsp;list.addFirst(value);<BR>&nbsp;}<BR>&nbsp;public Object pop(){<BR>&nbsp;&nbsp;Object temp=list.getFirst();<BR>&nbsp;&nbsp;top--;<BR>&nbsp;&nbsp;list.removeFirst();<BR>&nbsp;&nbsp;return temp;</P>
<P>&nbsp;}<BR>&nbsp;public Object top(){<BR>&nbsp;&nbsp;return list.getFirst();<BR>&nbsp;}<BR>}</P>
<P>&nbsp;</P>
<P>package expression;<BR>import java.io.*;<BR>import java.util.*;<BR>public class Expression{<BR>&nbsp;private ArrayList expression=new ArrayList();//存储中序表达式<BR>&nbsp;private ArrayList right=new ArrayList();//存储右序表达式<BR>&nbsp;private String result;//结果<BR>&nbsp;//依据输入信息创建对象，将数值与操作符放入ArrayList中<BR>&nbsp;private Expression(String input){<BR>&nbsp;&nbsp;StringTokenizer st=new StringTokenizer(input,"+-*/()",true);<BR>&nbsp;&nbsp;while(st.hasMoreElements()){<BR>&nbsp;&nbsp;&nbsp;expression.add(st.nextToken());<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;//将中序表达式转换为右序表达式<BR>&nbsp;private void toRight(){<BR>&nbsp;&nbsp;Stacks aStack=new Stacks();<BR>&nbsp;&nbsp;String operator;<BR>&nbsp;&nbsp;int position=0;<BR>&nbsp;&nbsp;while(true){<BR>&nbsp;&nbsp;&nbsp;if(Calculate.isOperator((String)expression.get(position))){<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(aStack.top==-1||((String)expression.get(position)).equals("(")){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aStack.push(expression.get(position));<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(((String)expression.get(position)).equals(")")){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!((String)aStack.top()).equals("(")){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator=(String)aStack.pop();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;right.add(operator);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Calculate.priority((String)expression.get(position))&lt;=Calculate.priority((String)aStack.top())&amp;&amp;aStack.top!=-1){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator=(String)aStack.pop();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!operator.equals("(")) right.add(operator);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aStack.push(expression.get(position));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else right.add(expression.get(position));<BR>&nbsp;&nbsp;&nbsp;position++;<BR>&nbsp;&nbsp;&nbsp;if(position&gt;=expression.size()) break;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;while(aStack.top!=-1){<BR>&nbsp;&nbsp;&nbsp;operator=(String)aStack.pop();<BR>&nbsp;&nbsp;&nbsp;right.add(operator);<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;//对右序表达式进行求值<BR>&nbsp;private void getResult(){<BR>&nbsp;&nbsp;this.toRight();<BR>&nbsp;&nbsp;Stacks aStack=new Stacks();<BR>&nbsp;&nbsp;String op1,op2,is=null;<BR>&nbsp;&nbsp;Iterator it=right.iterator();<BR>&nbsp;&nbsp;while(it.hasNext()){<BR>&nbsp;&nbsp;&nbsp;is=(String)it.next();<BR>&nbsp;&nbsp;&nbsp;if(Calculate.isOperator(is)){<BR>&nbsp;&nbsp;&nbsp;&nbsp;op1=(String)aStack.pop();<BR>&nbsp;&nbsp;&nbsp;&nbsp;op2=(String)aStack.pop();<BR>&nbsp;&nbsp;&nbsp;&nbsp;aStack.push(Calculate.twoResult(is,op1,op2));<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else aStack.push(is);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;result=(String)aStack.pop();<BR>&nbsp;&nbsp;it=expression.iterator();<BR>&nbsp;&nbsp;while(it.hasNext()){<BR>&nbsp;&nbsp;&nbsp;System.out.print((String)it.next());<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;System.out.println("="+result);<BR>&nbsp;}<BR>&nbsp;public static void main(String avg[]){<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;System.out.println("Input a expression:");<BR>&nbsp;&nbsp;&nbsp;BufferedReader is=new BufferedReader(new InputStreamReader(System.in));<BR>&nbsp;&nbsp;&nbsp;for(;;){<BR>&nbsp;&nbsp;&nbsp;&nbsp;String input=new String();<BR>&nbsp;&nbsp;&nbsp;&nbsp;input=is.readLine().trim();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(input.equals("q")) break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Expression boya=new Expression(input);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boya.getResult();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Input another expression or input 'q' to quit:");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;is.close();<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch(IOException e){<BR>&nbsp;&nbsp;&nbsp;System.out.println("Wrong input!!!");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}</P><img src ="http://www.blogjava.net/cavenaghi/aggbug/8536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cavenaghi/" target="_blank">Cavenaghi</a> 2005-07-27 11:45 <a href="http://www.blogjava.net/cavenaghi/archive/2005/07/27/8536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>