【java】分割字符串注意问题

今天无意中发现一个问题,在分隔字符串的时候,如("a|b|c".split("|"),获得到的结果根本不是a,b,c。于是对split方法进行了搜集,终于解决了该问题。   使用String.split方法时要注意的问题   在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。   我们看jdk doc中说明 public String[] split(String regex) Splits this string around matches of the given regular expression. 参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码: 用竖线 | 分隔字符串,你将得不到预期的结果 String[] aa = "aaa|bbb|ccc".split("|"); //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的字符串结果 用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。 String[] aa = "aaa*bbb*ccc".split("*"); //String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的字符串结果 显然,+ * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的字符串结果。 "|" … Continue reading “【java】分割字符串注意问题”

【java】HashMap的用法

  重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。   再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。   import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; import java.util.Iterator; import java.util.Hashtable; import java.util.TreeMap; class HashMaps { public static void main(String[] args) { Map map=new HashMap(); map.put("a", "aaa"); map.put("b", "bbb"); map.put("c", "ccc"); map.put("d", "ddd"); Iterator iterator = map.keySet().iterator(); while (iterator.hasNext()) { Object key = iterator.next(); System.out.println("map.get(key) is :"+map.get(key)); } Hashtable tab=new … Continue reading “【java】HashMap的用法”

【java】list<>

  public List<Bank> getKhxxInfos(Connection con){ String sql = "SELECT DH,DZ,KHBH,ZJHM,XM FROM T_YW_KHXXB"; List<Bank> list = new ArrayList<Bank>(); try { PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); while(rs.next()){ Bank bk = new Bank(); bk.setDh(rs.getString("DH")); bk.setDz(rs.getString("DZ")); bk.setKubh(rs.getInt("kubh")); bk.setXm(rs.getString("xm")); bk.setZjlx(rs.getString("zjlx")); list.add(bk); } } catch (SQLException e) { e.printStackTrace(); } return list; }   List<?> 这里面放什么.要看你List里存放什么类型.就像你上面的这个程序.你查询出来的数据放到Bank这个bean中.再把bean放到List中.那么如果 要用泛类型的话,那就List<Bank> bankList … Continue reading “【java】list<>“

【java】post以及get提交URL数据类

从网上整理了下以备以后所用! import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.Map; public class JURL { /** * 通过Get方式获得URL数据 调用方式: J_GetUrlData("http://www.baidu.com?a=1&b=2", * "utf-8"); * * @param 链接地址 * @param 编码方式 * @return */ public static String J_GetUrlData(String J_Url, String J_enCode) { String J_UrlData = ""; InputStream … Continue reading “【java】post以及get提交URL数据类”

【java】获取URL对应的资源

认识IP、认识URL是进行网络编程的第一步。java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。 一、认识URL 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。 简单的可以把URL理解为包含:协议、主机名、端口、路径、查询字符串和参数等对象。每一段可以独立设置。 应用程序也可以指定一个“相对 URL”,它只包含到达相对于另一个 URL 的资源的足够信息。HTML 页面中经常使用相对 URL. 相对 URL 不需要指定 URL 的所有组成部分。如果缺少协议、主机名称或端口号,这些值将从完整指定的 URL 中继承。 由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。 注意,URI 类在某些特定情况下对其组成字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 toURI() 和 URI.toURL() 实现这两个类之间的转换。 也可以使用 URLEncoder 和 URLDecoder 类,但是只适用于 HTML 形式的编码,它与 RFC2396 中定义的编码机制不同。 (以上介绍来自JavaAPI doc) 二、URL对象的构建 方式很多,可以看看API文档。 三、获取URL指定的资源 下面给个例子,说明如何获取到指定的资源。 import java.io.*; import java.net.URL; import java.net.URLConnection; public class TestURL … Continue reading “【java】获取URL对应的资源”