發表文章

目前顯示的是有「java」標籤的文章

[java]BIG5 字集判斷

前言,不是每個系統都支援UTF-8 UTF8的系統但要把資料拋入BIG5的系統內,如何讓使用者一看就知道字會有問題。 可以使用下面這段程式碼去判斷 請注意,這裡不另外處理補完計畫的字是否正常顯示 程式構想:http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/04/21/733.aspx 原本是想說用字碼去判斷,但怪怪的 SOURSE: http://zh.wikipedia.org/wiki/%E5%A4%A7%E4%BA%94%E7%A2%BC //BIG5有定義的字 String testString = "峰"; //BIG5沒定義的UTF-8字集 //String testString = "峯"; //罕用字(3Byte呈現一個字UTF8字碼217E5) //String testString = "𡟥"; //BIUG5 自訂字FA40等自定義字集 //String testString = "";     String[] stringArray = testString.split("");     for (int i = 1; i < stringArray.length; i++) {       System.out.println(stringArray[i]);       //使用BIG5編碼再用UTF-8還原若有錯誤會顯示問號       String str = new String(stringArray[i].getBytes("BIG5"), "UTF-8");       if(str.equals("?")){         System.out.println(stringArray[i] + "非BIG5字集");       }     }

[API Server] JAX-RS 使用 Jersey 2.1.7 架設筆記

使用Jersey 建立Restful Server 架設環境如下 Java 6 Tomcat 7 (Tomcat 5 版會有問題,暫不處理) Maven Jersey 2.17 1. 設定pom.xml     <dependency>       <groupId>org.glassfish.jersey.containers</groupId>       <artifactId>jersey-container-servlet</artifactId>       <version>2.17</version>     </dependency>       <dependency>       <groupId>org.glassfish.jersey.containers</groupId>       <artifactId>jersey-container-servlet-core</artifactId>       <version>2.17</version>     </dependency> 2. 建立API Server所指定到的路徑 package com.example.jaxrs; import javax.ws.rs.ApplicationPath; import org.glassfish.jersey.server.ResourceConfig; @ApplicationPath("API") //所指定的網頁路徑 public class MyApplication extends ResourceConfig {   public MyApplicatio...

[java]xlsx to json using apache poi

Xlsx to JsonArray 註解雖然是英文的,個人還是覺得挺直覺得XD 需要自取,自行參閱。 好處是說當遇到很大的Excel要用,但又不想數格子數到瘋掉很好用。 缺點是說需要再針對excel再處理一次,數格子來寫當然就程式的執行來說比較快。 但眼睛也會花花花,不小心匯錯更麻煩。 大檔處理我沒解決(因為我遇到的是100*10000)UP的data 如果有前輩看得的話可以提供給我幾個關鍵字去找相關data 目前看到的是JAVA SAX,但好亂>"< code : import java.io.File; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row.MissingCellPolicy; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.json.JSONArray; import org.json.JSONObject; /**  * Xlsx tojson  *  * @author bonder chou  */ public class Xlsx {   /**    * Xlsx to JSONARRAY first row is jsonKey , others row is data row    *    * @see    * https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/class-use/Row.MissingCellP...

[POI]設定邊界setMarge釋疑

我在setMarge時設定邊界為0.25但是在Excel上邊界顯示的卻是0.6 追查一下發現原來是setMarge設定的是英吋 https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html#setMargin(short,%20double) 而EXCEL顯示的卻是CM 所以在設定邊界時要稍微注意一下這裡的單位計算

[java]字串補零

語法如下 String.format("%010d", 1234)

[connection pool]connection pool using proxool(JAVA)

參考: Proxool JAVA 初始化 網路上多用XML的設定方式 在此為使用java去使用connection pool Sample code: -------------------------------------------------------------------------------------------- package com.mycompany.test; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import org.logicalcobwebs.proxool.ProxoolException; import org.logicalcobwebs.proxool.ProxoolFacade; /**  * @version 1.0  * @author chou7658  *  */ public class Connection {     static java.sql.Connection con = null;     /**      * 類別初始化 將connection 在一開始載入類別時便建立相關的connection pool      */     static {         try {             Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");             Properties info =...

[java]半型轉全型

半型轉全形沒有現成的code可用,所以要自己寫 有更好版本請提供!!! code: static public String toBigChat(String input) { String q1[] = {"A", "B", "C", "D", "-", "1", "2", "#", "[?]"}; String q2[] = {"A", "B", "C", "D", "-", "1", "2", "#", "?"}; for (int i = 0; i < 9; i++) { input = input.replaceAll(q1[i], q2[i]); } return input; } q1為需要取代的字串 q2為轉換後的字串 q1與q2必須互相對應 比對的方是我是用比較簡單的兩個陣列 當然你想用json去包一對一的關係也可以 主要的核心在replaceall 其中要注意的是replaceall支援正則表達式 所以在下特殊的字例如^、?、*這些對正則表達式有意含的特殊符號時必須使用[]包起來,才不至於錯誤 另外\在java內要記得是\\ 取代\要下 str.replaceAll("\\\\", "a"); 才會正確。