jsp从固定类型的字符串中取出多个数值并转化为float型
2013-08-02 21:20
288 查看
2013-8-2 17:05:27
在我的上一篇博客的结尾提到我接下来要实现的就是从字符串中分离出数值并得到经纬度,现在这一计划已经实现。
固定类型的字符串例子为:POINT(121.38785 28.426766)
需要做的就是将 ”POINT(“ 和”)“这两部分去掉,然后得到一个含有数字和空格的字符串:”121.38785 28.426766“。这需要使用replace()函数。
然后以空格为分隔符分离、提取两个数字字符串:"121.38785 "和”28.426766“。这里使用的是split()函数。
但这两个数值却是字符串(string)类型的,还需要将其转float型换数值。这里用到的是Float.parseFloat()函数。
具体insert_map.jsp页面的代码如下:
str = rs.getString("AsText(the_geom)");
lonlat = str.replaceAll("POINT|\\(|\\)","");//将POINT这个字符串及(、)这两个字符(左右括号)全用一个空字符代替,等于就是将这个三个字符(串)(一个字符串及两个字符)删除掉。符号|是或的意思,而\\(是(的转义字符,同样\\)是)的转义字符。
最后,直接在浏览器上访问insert_map.jsp,结果如下:
很成功!
另外,为了验证所得到的是数值而不是其他类型的(不可进行运算的),我特意做了如下测试:
可见,我的操作是成功的。
下一步需要做的:
1,将现有文件放至测试服务器;
2,修改jsp页面代码,实现jsp页面上不含java代码,java代码放在。class文件里。
在我的上一篇博客的结尾提到我接下来要实现的就是从字符串中分离出数值并得到经纬度,现在这一计划已经实现。
固定类型的字符串例子为:POINT(121.38785 28.426766)
需要做的就是将 ”POINT(“ 和”)“这两部分去掉,然后得到一个含有数字和空格的字符串:”121.38785 28.426766“。这需要使用replace()函数。
然后以空格为分隔符分离、提取两个数字字符串:"121.38785 "和”28.426766“。这里使用的是split()函数。
但这两个数值却是字符串(string)类型的,还需要将其转float型换数值。这里用到的是Float.parseFloat()函数。
具体insert_map.jsp页面的代码如下:
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%> <%@ page contentType="text/html;charset=utf-8"%> <% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8"); %> <htnl> <head> <title>往地图数据库里插入数据 </title> </head> <body> <% String id=request.getParameter("id"); //从表单获得 String name=request.getParameter("name"); //从表单获得 String voltage_level=request.getParameter("voltage_level"); //从表单获得 String lon=request.getParameter("lon"); //从表单获得 String lat=request.getParameter("lat"); //从表单获得 try { /** 连接数据库参数 **/ String driverName = "com.mysql.jdbc.Driver"; //驱动名称 String DBUser = "root"; //mysql用户名 String DBPasswd = "hel610"; //mysql密码 String DBName = "map_db"; //数据库名 String lonlat = "";//存储经纬度字符串 String[] strArray = new String[2];//存储 经纬度的字符数组 float lonValue;//存储经度值 float latValue;//存储纬度值 String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd; Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(connUrl); Statement stmt = conn.createStatement(); stmt.executeQuery("SET NAMES UTF8"); String insert_sql = "INSERT INTO biandianzhan_point_tb VALUES('" + id + "','" + name + "','" + voltage_level + "',GeometryFromText('POINT (" + lon + " " + lat + ")') )"; String query_sql = "select id,name,voltage_level,AsText(the_geom) from biandianzhan_point_tb"; try { stmt.execute(insert_sql); }catch(Exception e) { e.printStackTrace(); } try { ResultSet rs = stmt.executeQuery(query_sql); while(rs.next()) { %> ID:<%=rs.getString("id")%> </br> 名称:<%=rs.getString("name")%> </br> 电压等级:<%=rs.getString("voltage_level")%> </br> <% lonlat = rs.getString("AsText(the_geom)").replaceAll("POINT|\\(|\\)",""); strArray = lonlat.split(" "); //以空格为分隔符进行分割,分隔符前后的内容按字符串形式存进字符数组strArray lonValue = Float.parseFloat(strArray[0]);//字符串转换成浮点数 latValue = Float.parseFloat(strArray[1]); %> 经度:<%=lonValue%> </br> 纬度:<%=latValue%> </br></br> <% } }catch(Exception e) { e.printStackTrace(); } //rs.close(); stmt.close(); conn.close(); }catch (Exception e) { e.printStackTrace(); } %> </body> </html>对于lonlat = rs.getString("AsText(the_geom)").replaceAll("POINT|\\(|\\)","");这一句,可以这样来看:
str = rs.getString("AsText(the_geom)");
lonlat = str.replaceAll("POINT|\\(|\\)","");//将POINT这个字符串及(、)这两个字符(左右括号)全用一个空字符代替,等于就是将这个三个字符(串)(一个字符串及两个字符)删除掉。符号|是或的意思,而\\(是(的转义字符,同样\\)是)的转义字符。
最后,直接在浏览器上访问insert_map.jsp,结果如下:
很成功!
另外,为了验证所得到的是数值而不是其他类型的(不可进行运算的),我特意做了如下测试:
可见,我的操作是成功的。
下一步需要做的:
1,将现有文件放至测试服务器;
2,修改jsp页面代码,实现jsp页面上不含java代码,java代码放在。class文件里。
相关文章推荐
- java 将数值转化为固定长度的字符串
- 判断字符串是否可以转化为数值类型
- [置顶] 如何将比Long类型更大数值字符串转化为整数
- C#中货币类型和数值类型、字符串类型的转化
- 通过BKDRHASH将字符串转化为数值类型
- 【C++】字符串和数值类型的相互转化(借助STL)
- 字符串类型转化成数值类
- 关于C#中货币类型和数值类型、字符串类型的转化和在DataGridView中的显示问题:
- 字符串与数值类型的转化
- Java中关于Json对象类型和字符串类型之间互相转化的问题 .
- swift字符串转化为float类型
- [ios]字符串转化成NSDate类型 计算与当前时间的相差 月数 天数 【转】
- 将几个类型转化为字符串
- Mysql数据库学习(二):数据类型(数值类型 日期和时间类型 字符串类型)
- LeetCode—实现字符串转化为int类型的函数
- Python的文件类型、变量以及数值和字符串
- vs2005入门 之 数据类型/数值/字符/字符串[视频]
- 对象转化为json格式字符串,json格式字符串转化为JSONObject对象,取出JSONObject对象里的key值
- 关于字符串数组中存储不同类型的数值
- 将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于等于2)有返回1,无返回0