<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-71  評(píng)論-5  文章-0  trackbacks-0
      2015年4月13日
         摘要: 一個(gè)stmt多個(gè)rs進(jìn)行操作.那么從stmt得到的rs1,必須馬上操作此rs1后,才能去得到另外的rs2,再對(duì)rs2操作.不能互相交替使用,會(huì)引起rs已經(jīng)關(guān)閉錯(cuò)誤——Operation not allowed after ResultSet closed.錯(cuò)誤的代碼如下: stmt=conn.createStatement();  rs=stm...  閱讀全文
    posted @ 2015-10-13 14:58 藤本薔薇 閱讀(215) | 評(píng)論 (0)編輯 收藏
    在 JDK1.5 引入自動(dòng)裝箱和拆箱的機(jī)制后,包裝類和基本類型之間的轉(zhuǎn)換就更加輕松便利了。

    裝箱:把基本類型轉(zhuǎn)換成包裝類,使其具有對(duì)象的性質(zhì),又可分為手動(dòng)裝箱和自動(dòng)裝箱

    int i= 10; //定義一個(gè)int基本類型值
    Integer x = new Integer(i); //手動(dòng)裝箱
    Integer y = i; //自動(dòng)裝箱
    posted @ 2015-09-22 20:28 藤本薔薇 閱讀(227) | 評(píng)論 (0)編輯 收藏

    功能:將一個(gè)由英文字母組成的字符串轉(zhuǎn)換成指定格式---從右邊開始每三個(gè)字母用逗號(hào)分隔的形式。

    請(qǐng)?jiān)诰庉嬈髦械牡?/span> 4、10 行將代碼填寫完整

    運(yùn)行效果: j,aew,kjl,dfx,mop,zdmpublic static void main(String[] args) {
            // Java文件名
    String fileName = "HelloWorld.jav"; 
            // 郵箱
    String email = "laurenyang@imooc.com";
    // 判斷.java文件名是否正確:合法的文件名應(yīng)該以.java結(jié)尾
            /*
            參考步驟:
            1、獲取文件名中最后一次出現(xiàn)"."號(hào)的位置
            2、根據(jù)"."號(hào)的位置,獲取文件的后綴
            3、判斷"."號(hào)位置及文件后綴名
            */
            //獲取文件名中最后一次出現(xiàn)"."號(hào)的位置
    int index = fileName.lastIndexOf('.');
            
            // 獲取文件的后綴
    String prefix = fileName.substring(index);
            
    // 判斷必須包含"."號(hào),且不能出現(xiàn)在首位,同時(shí)后綴名為"java"
    if (index !=0 && index != -1 &&  prefix.equals("java")) {
    System.out.println("Java文件名正確");
    } else {
    System.out.println("Java文件名無效");
    }

            // 判斷郵箱格式是否正確:合法的郵箱名中至少要包含"@", 并且"@"是在"."之前
             /*
            參考步驟:
            1、獲取文件名中"@"符號(hào)的位置
            2、獲取郵箱中"."號(hào)的位置
            3、判斷必須包含"@"符號(hào),且"@"必須在"."之前
            */
       // 獲取郵箱中"@"符號(hào)的位置
    int index2 = email.indexOf("@");
            
            // 獲取郵箱中"."號(hào)的位置
    int index3 = email.indexOf('.');
            
    // 判斷必須包含"@"符號(hào),且"@"必須在"."之前
    if (index2 != -1 && index3 > index2) {
    System.out.println("郵箱格式正確");
    } else {
    System.out.println("郵箱格式無效");
    }
    }






    字節(jié)是計(jì)算機(jī)存儲(chǔ)信息的基本單位,1 個(gè)字節(jié)等于 8 位, gbk 編碼中 1 個(gè)漢字字符存儲(chǔ)需要 2 個(gè)字節(jié)1 個(gè)英文字符存儲(chǔ)需要 1 個(gè)字節(jié)。所以我們看到上面的程序運(yùn)行結(jié)果中,每個(gè)漢字對(duì)應(yīng)兩個(gè)字節(jié)值,如“學(xué)”對(duì)應(yīng) “-47 -89” ,而英文字母 “J” 對(duì)應(yīng) “74” 。同時(shí),我們還發(fā)現(xiàn)漢字對(duì)應(yīng)的字節(jié)值為負(fù)數(shù),原因在于每個(gè)字節(jié)是 8 位,最大值不能超過 127,而漢字轉(zhuǎn)換為字節(jié)后超過 127,如果超過就會(huì)溢出,以負(fù)數(shù)的形式顯示。






         public static void main(String[] args) {
    // 定義一個(gè)字符串
    String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
            
            // 出現(xiàn)次數(shù)
    int num = 0;
             // 循環(huán)遍歷每個(gè)字符,判斷是否是字符 a ,如果是,累加次數(shù)
    for ( int i=0;i<s.length()-1;i++)
    {
                // 獲取每個(gè)字符,判斷是否是字符a
    if (  'a'==s.charAt(i)      ) {
                    // 累加統(tǒng)計(jì)次數(shù)
    num++; 
    }
    }
    System.out.println("字符a出現(xiàn)的次數(shù):" + num);
    }




    功能:將一個(gè)由英文字母組成的字符串轉(zhuǎn)換成指定格式---從右邊開始每三個(gè)字母用逗號(hào)分隔的形式。

    請(qǐng)?jiān)诰庉嬈髦械牡?/span> 4、10 行將代碼填寫完整

    運(yùn)行效果: j,aew,kjl,dfx,mop,zdm


        public static void main(String[] args) {
    // 創(chuàng)建一個(gè)空的StringBuilder對(duì)象
            StringBuilder str = new StringBuilder();
    // 追加字符串
    str.append("jaewkjldfxmopzdm");
            // 從后往前每隔三位插入逗號(hào)
    for(int i = str.length()-3; i>0 ; i=i-3){
         
               str.insert(i,",");
    }
        
            // 將StringBuilder對(duì)象轉(zhuǎn)換為String對(duì)象并輸出
    System.out.print(str.toString());
    }

     結(jié)果: j,aew,kjl,dfx,mop,zdm
    posted @ 2015-09-22 16:12 藤本薔薇 閱讀(356) | 評(píng)論 (0)編輯 收藏
    String s1 = "imooc";
    String s2 = "imooc";
            
            //定義字符串s3,保存“I love”和s1拼接后的內(nèi)容
    String s3 = "I love" + s1; 
            // 比較字符串s1和s2
    // imooc為常量字符串,多次出現(xiàn)時(shí)會(huì)被編譯器優(yōu)化,只創(chuàng)建一個(gè)對(duì)象
    System.out.println("s1和s2內(nèi)存地址相同嗎?" + (s1 == s2));
            
            //比較字符串s1和s3
    System.out.println("s1和s3內(nèi)存地址相同嗎?" +  (s1==s3));
    String s4 = "I love " + s1;
             //比較字符串s4和s3
    // s1是變量,s4在運(yùn)行時(shí)才知道具體值,所以s3和s4是不同的對(duì)象
    System.out.println("s3和s4內(nèi)存地址相同嗎?" + (s4 == s3));
    posted @ 2015-09-22 15:26 藤本薔薇 閱讀(275) | 評(píng)論 (0)編輯 收藏
    //外部類HelloWorld
    public class HelloWorld {
        
        // 內(nèi)部類Inner,類Inner在類HelloWorld的內(nèi)部
        public class Inner {
            
    // 內(nèi)部類的方法
    public void show() {
    System.out.println("welcome to imooc!");
    }
    }
        
    public static void main(String[] args) {
            
            // 創(chuàng)建外部類對(duì)象
    HelloWorld hello = new HelloWorld();
            // 創(chuàng)建內(nèi)部類對(duì)象
    Inner i = hello.new Inner();
            // 調(diào)用內(nèi)部類對(duì)象的方法
    i.show();
    }
    }
    posted @ 2015-09-09 15:47 藤本薔薇 閱讀(312) | 評(píng)論 (0)編輯 收藏














    posted @ 2015-09-09 14:41 藤本薔薇 閱讀(321) | 評(píng)論 (0)編輯 收藏
    不清楚路徑的查找 : find / -name mysql


     MYSQL常用經(jīng)典命令(沒有試過)
    1.停止mysql
    kill -9 `ps -ef | grep mysqld_safe| grep -v grep| awk '{print $2}'`
    kill -9 `ps -ef | grep 'mysqld' | grep -v grep| awk '{print $2}'`

    2.啟動(dòng)mysql
    cd /usr/local/mysql-5.4.1-beta-linux-x86_64-glibc23
    /bin/sh bin/mysqld_safe --user=mysql & 


    find /home/lijiajia/ -amin -10        #查找在系統(tǒng)中最后10分鐘訪問的文件
    find /home/lijiajia/ -atime -2        #查找在系統(tǒng)中最后48小時(shí)訪問的文件
    find /home/lijiajia/ -empty           #查找在系統(tǒng)中為空的文件或者文件夾
    find /home/lijiajia/ -mmin -5         # 查找在系統(tǒng)中最后5 分鐘里修改過的文件
    find /home/lijiajia/ -mtime -1        #查找在系統(tǒng)中最后24 小時(shí)里修改過的文件
    find /home/lijiajia/ -nouser          #查找在系統(tǒng)中屬于作廢用戶的文件(不明白是什么意思)
    find /home/lijiajia/ -amin 10         #查找在系統(tǒng)中最后10分鐘訪問的文件
    find /home/ftp/pub -user lijiajia     #查找在系統(tǒng)中屬于lijiajia這個(gè)用戶的文件
    posted @ 2015-09-02 10:26 藤本薔薇 閱讀(213) | 評(píng)論 (0)編輯 收藏
      public static Map ConvertObjToMap(Object obj){
                  Map<String,Object> reMap = new HashMap<String,Object>();
                  if (obj == null
                   return null;
                  Field[] fields = obj.getClass().getDeclaredFields();
                  try {
                   for(int i=0;i<fields.length;i++){
                    try {
                     Field f = obj.getClass().getDeclaredField(fields[i].getName());
                     f.setAccessible(true);
                           Object o = f.get(obj);
                           if(o == null){
                               o = "";
                           }else{
                               o = String.valueOf(o);
                           }
                           reMap.put(fields[i].getName(), String.valueOf(o));
                    } catch (NoSuchFieldException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    } catch (IllegalArgumentException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    } catch (IllegalAccessException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    }
                   }
                  } catch (SecurityException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                  } 
                  return reMap;
                 }
    posted @ 2015-08-31 19:52 藤本薔薇 閱讀(1018) | 評(píng)論 (0)編輯 收藏

    import java.io.IOException;
    import java.util.Date;

    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    import com.alibaba.fastjson.JSONObject;
    import com.huoniu.openapi.constant.Constant.MESSAGE;
    import com.huoniu.openapi.constant.InvokeContext;
    import com.huoniu.openapi.model.RetCode;
    import com.huoniu.openapi.model.RetMsg;
    import com.huoniu.openapi.model.SmsCode;
    import com.huoniu.openapi.service.SmsCodeService;
    import com.huoniu.openapi.utils.AESUtil;
    import com.huoniu.openapi.utils.SmsUtil;
    import com.huoniu.openapi.web.interceptor.InvokeContextInitInterceptor;
    import com.puff.framework.annotation.Before;
    import com.puff.framework.annotation.Controller;
    import com.puff.framework.annotation.Inject;
    import com.puff.framework.annotation.InterceptorChain;
    import com.puff.framework.utils.JsonUtil;
    import com.puff.framework.utils.StringUtil;
    import com.puff.web.view.TextView;
    import com.puff.web.view.View;
    import com.puff.web.view.ViewFactory;

    @Controller("/rest/sms")
    public class HuyiSmsController {    

        private static String content = "您的驗(yàn)證碼是:%s。請(qǐng)不要把驗(yàn)證碼泄露給其他人。";
        public View send(){
            
            String invokeData = InvokeContext.getInvokeData();
            if (StringUtil.blank(invokeData)) {
                return json(RetMsg.error(RetCode.OTHER_ERROR, "發(fā)送短信失敗!"));
            }
            
            JSONObject jsonObject = JSONObject.parseObject(invokeData);
            String  mobile = jsonObject.getString("customer_no");
            if (StringUtil.blank(mobile)) {
                return json(RetMsg.error(RetCode.NULL_PARAM, "手機(jī)號(hào)碼不能為空"));
            }
                
                HttpClient client = new HttpClient(); 
                PostMethod method = new PostMethod(MESSAGE.NEW_MESSAGEURL);  //接口地址
                    
                client.getParams().setContentCharset("UTF-8");
                method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");

                int mobile_code = (int)((Math.random()*9+1)*100000);        
                                                   System.out.println("mobile_code : "+mobile_code);
                NameValuePair[] data = {//提交短信
                        new NameValuePair("account", MESSAGE.NEW_ACCOUNT), 
                        new NameValuePair("password", SmsUtil.MD5Encode(MESSAGE.NEW_PASSWORD)),
                        new NameValuePair("mobile", mobile), 
                        new NameValuePair("content", String.format(content, mobile_code)),
                };
                
                method.setRequestBody(data);        

                try {
                    client.executeMethod(method);    
                    String SubmitResult =method.getResponseBodyAsString();
                    Document doc = DocumentHelper.parseText(SubmitResult); 
                    Element root = doc.getRootElement();
                    String code = root.elementText("code");    
                    String msg = root.elementText("msg");    
                    String smsid = root.elementText("smsid");    
                                
                    if(code == "2"){  //發(fā)送成功,寫庫(kù)
                        
                    }
                    
                } catch (HttpException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (DocumentException e) {
                    e.printStackTrace();
                }    
                
            
                return json(RetMsg.success("發(fā)送成功!!!"));
            
        }
        
        
        
        public View json(RetMsg msg) {
            String data = JsonUtil.toJson(msg);
            if (InvokeContext.isEncrypt()) {
                data = AESUtil.encrypt(data);
            }
            return ViewFactory.text(data, TextView.ContentType.JSON);
        }

    }
    posted @ 2015-08-31 10:02 藤本薔薇 閱讀(305) | 評(píng)論 (0)編輯 收藏
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;

    import com.alibaba.fastjson.JSONObject;
    import com.huoniu.openapi.constant.Constant.TONGLIAN;


    public class TLInterfaceService {
        
        private static final String USERNAME = "";
        private static final String PASSWORD = "";
        private static final String TENANT = "";
        private static final String GRANT_TYPE_GET = "password";    
        private static final String GRANT_TYPE_REFRESH = "refresh_token";    
        
        private static String TOKEN = null;
        private static String REFRESH_TOKEN = null;
        private static long EXPIRES_IN ;
        private static long START_DATE;

        
        public  String getToken() {
            if(TOKEN==null){
                    TOKEN  = login();
            }else{
                Date date = new Date();
                if(START_DATE-date.getTime()<EXPIRES_IN-30){
                    TOKEN  = refresh();
                }
                
            }
            
            return TOKEN;
        }
        
        
        public  void setToken(String token) {
            TOKEN = token;
        }


        /**
         * 登陸,獲取token
         * 
    @return 
         
    */
                
            public static String login(){

                    HttpClient httpClient = new HttpClient();
                    String URL = String.format(TONGLIAN.PREV_PATH, "");  //接口地址
                    try {
                        PostMethod postMethod = new PostMethod(URL);
                        postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
                        NameValuePair[] data = { 
                                new NameValuePair("username", USERNAME),
                                new NameValuePair("password", PASSWORD),
                                new NameValuePair("tenant",  TENANT),
                                new NameValuePair("grant_type", GRANT_TYPE_GET)
                                 };
                        postMethod.setRequestBody(data);
                        int statusCode = httpClient.executeMethod(postMethod);
                        if(200 == statusCode){
                            String body  = postMethod.getResponseBodyAsString();
                            JSONObject json=JSONObject.parseObject(body);
                            TOKEN = json.getString("access_token");
                            REFRESH_TOKEN = json.getString("refresh_token");
                            EXPIRES_IN = Long.parseLong(json.getString("expires_in"));
                            START_DATE =  (new Date()).getTime();
                        }
                    } catch (Exception e) {
                        
                    }
                    return TOKEN;
             }
            
            /**
             * refresh_token
             * 
    @return 
             
    */
                            
            public static String refresh(){
                    
                HttpClient httpClient = new HttpClient();
                    String URL = String.format(TONGLIAN.PREV_PATH, ""); //接口地址
                    try {
                        PostMethod postMethod = new PostMethod(URL);
                        postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
                        NameValuePair[] data = { 
                                new NameValuePair("refresh_token", REFRESH_TOKEN),
                                new NameValuePair("grant_type", GRANT_TYPE_REFRESH)
                         };
                        postMethod.setRequestBody(data);
                        int statusCode = httpClient.executeMethod(postMethod);
                        
                        if(200 == statusCode){
                            String body  = postMethod.getResponseBodyAsString();
                            JSONObject json=JSONObject.parseObject(body);
                            TOKEN = json.getString("access_token");
                            REFRESH_TOKEN = json.getString("refresh_token");
                            EXPIRES_IN = Long.parseLong(json.getString("expires_in"));
                            START_DATE =  (new Date()).getTime();
                        }
                    } catch (Exception e) {
                        
                    }
                    return TOKEN;
             }

    }
    posted @ 2015-08-31 09:54 藤本薔薇 閱讀(290) | 評(píng)論 (0)編輯 收藏

    /Files/kokosang/html5拖拽上傳.zip

      前幾天想做個(gè)給安卓app升級(jí)做個(gè)上傳頁(yè)面,然后從網(wǎng)上down了個(gè)頁(yè)面下面(主要是嫌棄自己頁(yè)面整的太丑,見不了人),然后就一直在整后臺(tái)取值的辦法
      各種百度,值取出來了,但是,悲催的是總是亂碼,崩潰了,大神看了后,鄙視一番,給我整了下,簡(jiǎn)直就是重寫了

      貼出來,先放張頁(yè)面效果
      


      賞心悅目的后臺(tái)來咯

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.util.List;

    import org.apache.log4j.Logger;
    import org.apache.tomcat.util.http.fileupload.FileItem;
    import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
    import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;

    import com.puff.framework.annotation.Controller;
    import com.puff.web.mvc.PuffContext;
    import com.puff.web.view.View;

    @Controller("/upload/android")
    public class AndroidVersionUploadController {

        private static final Logger logger = Logger.getLogger(UserImageController.class);
        
        private static final String FILE_PATH = "C:/Users/Administrator/Desktop";
        
        private static final String FILE_APK_NAME = "/nn.apk";
        private static final String FILE_VER_NAME = "/ver.txt";
        
        /**
         * 版本上傳
         * 
    @return
         * 
    @throws Exception 
         
    */
        public View update() throws Exception {
            DiskFileItemFactory factory = new DiskFileItemFactory(); 
            ServletFileUpload upload = new ServletFileUpload(factory); 
            List<FileItem> items = upload.parseRequest( PuffContext.getRequest()); 
            
            String ver = null;
            String info = null;
            String isFoucs = null;
            for(Object object : items) { 
                FileItem fileItem = (FileItem)object; 
                if(fileItem.isFormField()) { 
                    
                    String name = fileItem.getFieldName();
                    String value = fileItem.getString("utf-8");
                    
                    if("ver".equals(name)){
                        ver = value;
                    }else if("content".equals(name)){
                        info = value;
                    }else if("radio".equals(name)){
                        isFoucs = value;
                    }
                } else {
                    saveFileInfo(fileItem);
                }
            } 
            
            saveContentInfo(ver, info, isFoucs);
            
            return null;
        
        }

        private void saveFileInfo(FileItem fileItem) {
            
            InputStream is = null;
            OutputStream os = null;
            try {
                File file = new File(FILE_PATH);
                if(file.exists()) {
                    file.mkdirs();
                }
                
                is = fileItem.getInputStream();
                os = new FileOutputStream(FILE_PATH + FILE_APK_NAME);
                
                int len = 0;
                byte[] buffer = new byte[8 * 1024];
                while ((len = is.read(buffer, 0, 8 * 1024)) != -1) {
                    os.write(buffer, 0, len);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                closeOutputStream(os);
                closeInputStream(is);
            }
        }
        
        public void saveContentInfo(String ver, String info, String isFoucs) {
            BufferedWriter br = null;
            try {
                File file = new File(FILE_PATH);
                if(file.exists()) {
                    file.mkdirs();
                }
                
                br = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FILE_PATH + FILE_VER_NAME), "utf-8"));
                br.write("ver:" + ver + "\r\n");   //版本號(hào)
                br.write("update:" + isFoucs+ "\r\n");   //是否強(qiáng)制更新
                br.write("content:" + info );    //版本升級(jí)內(nèi)容
                br.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if(br != null) {
                        br.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    br = null;
                }
            }
        }


        private void closeOutputStream(OutputStream os) {
            if(os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    os = null;
                }
            }
        }
        
        private void closeInputStream(InputStream is) {
            if(is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    is = null;
                }
            }
        }
    }
    posted @ 2015-08-24 10:35 藤本薔薇 閱讀(261) | 評(píng)論 (0)編輯 收藏
    public static void main(String[] args) {

            String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?><p><seqid></seqid><code></code><msg>成功</msg>" +
                              "<node><ename>huoniu</ename><cname>火牛</cname><prefix>108</prefix><begin>20150603</begin><end>20160630</end><borr>1000000</borr><margin>100000</margin><usdborr>1000000</usdborr><usdmargin>100000</usdmargin><mainp>0.60</mainp><midp>0.60</midp><growp>0.60</growp><mainpt>0.60</mainpt><midpt>0.60</midpt><growpt>0.30</growpt><shcomm>0.000300</shcomm><szcomm>0.000300</szcomm><warn>1.000</warn><close>1.000</close><interest>200</interest><commf>13</commf><layout>p-huo01:1100000:574810</layout><unmoney>0</unmoney><tstatus>0</tstatus><cstatus>0</cstatus></node>" +
                              " <node><ename>nn</ename><cname>牛牛</cname><prefix>102</prefix><begin>20150615</begin><end>20151015</end><borr>10000000</borr><margin>8000000</margin><usdborr>10000000</usdborr><usdmargin>8000000</usdmargin><mainp>0.60</mainp><midp>0.60</midp><growp>0.30</growp><mainpt>0.60</mainpt><midpt>0.60</midpt><growpt>0.30</growpt><shcomm>0.003000</shcomm><szcomm>0.003000</szcomm><warn>0.800</warn><close>0.800</close><interest>0</interest><commf>0</commf><layout></layout><unmoney>18000000</unmoney><tstatus>0</tstatus><cstatus>0</cstatus></node>" +
                             "<node><ename>ag-huo</ename><cname>兜底代理商</cname><prefix>huo</prefix><begin>20150602</begin><end>20160630</end><borr>0</borr><margin>0</margin><usdborr>0</usdborr><usdmargin>0</usdmargin><mainp>0.60</mainp><midp>0.60</midp><growp>0.30</growp><mainpt>0.60</mainpt><midpt>0.60</midpt><growpt>0.30</growpt><shcomm>0.000300</shcomm><szcomm>0.000300</szcomm><warn>0.010</warn><close>0.010</close><interest>0</interest><commf>0</commf><layout></layout><unmoney>0</unmoney><tstatus>0</tstatus><cstatus>0</cstatus></node></p>";

            List<Map> nodeList = new ArrayList<Map>();
            Map<String, Object> sendMap = new HashMap<String, Object>();
            try {
                
                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                DocumentBuilder db = dbf.newDocumentBuilder();
                Document doc = db.parse(new InputSource(new StringReader(xml)));
                Element root = doc.getDocumentElement();// 根節(jié)點(diǎn)

                Node node = root.getFirstChild();
                while(node != null) {
                    String nodeName = node.getNodeName().trim();
                    String nodeValue = node.getTextContent().trim();
                    
                    if("node".equals(nodeName) && node.hasChildNodes()) {
                        
                        Map<String, Object> nodeMap = new HashMap<String, Object>();
                        
                        Node childNode = node.getFirstChild();
                        while(childNode != null) {
                            nodeMap.put(childNode.getNodeName(), childNode.getTextContent());
                            childNode = childNode.getNextSibling();
                        }
                        
                        nodeList.add(nodeMap);
                    } else {
                        sendMap.put(nodeName, nodeValue);
                    }
                    
                    node = node.getNextSibling();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            sendMap.put("node", nodeList);
            
            System.out.println(sendMap);
        }



    打印結(jié)果 :
    {node=[{warn=1.000, cstatus=0, tstatus=0, borr=1000000, growpt=0.30, unmoney=0, midpt=0.60, usdmargin=100000, commf=13, close=1.000, begin=20150603, shcomm=0.000300, usdborr=1000000, growp=0.60, interest=200, layout=p-huo01:1100000:574810, prefix=108, ename=huoniu, midp=0.60, mainpt=0.60, margin=100000, szcomm=0.000300, cname=火牛, end=20160630, mainp=0.60}, 
                {warn=0.800, cstatus=0, tstatus=0, borr=10000000, growpt=0.30, unmoney=18000000, midpt=0.60, usdmargin=8000000, commf=0, close=0.800, begin=20150615, shcomm=0.003000, usdborr=10000000, growp=0.30, interest=0, layout=, ename=nn, midp=0.60, mainpt=0.60, margin=8000000, szcomm=0.003000, end=20151015, mainp=0.60},
                {warn=0.010, cstatus=0, tstatus=0, borr=0, growpt=0.30, unmoney=0, midpt=0.60, usdmargin=0, commf=0, close=0.010, begin=20150602, shcomm=0.000300, usdborr=0, growp=0.30, interest=0, layout=, prefix=huo, ename=ag-huo, midp=0.60, mainpt=0.60, margin=0, szcomm=0.000300, end=20160630, mainp=0.60}], seqid=, code=, msg=成功}
    posted @ 2015-08-09 10:15 藤本薔薇 閱讀(267) | 評(píng)論 (0)編輯 收藏
          public static void main(String[] args) throws Exception {
                Map<String, Object> sendMap = new HashMap<String, Object>();
                String data = "<?xml version=\"1.0\" encoding=\"gb2312\"?><p><seqid></seqid><client>0BF3F2D9A01797BBF05D6BC89877DC91</client><ename>108-wc</ename><code>0</code><msg>成功</msg><totalm>12447.97</totalm><cash>5669.13</cash><stockm>6778.84</stockm><num>2</num><stock><node><market>0</market><symbol>600104</symbol><direct>1</direct><type>0</type><avgprice>21.010</avgprice><holdnum>299</holdnum></node><node><market>0</market><symbol>601818</symbol><direct>1</direct><type>0</type><avgprice>4.993</avgprice><holdnum>4</holdnum></node></stock></p>";

                List<Map> nodeList = new ArrayList<Map>();
                try {
                    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                    DocumentBuilder db = dbf.newDocumentBuilder();
                    Document doc = db.parse(new InputSource(new StringReader(data)));
                    Element root = doc.getDocumentElement();// 根節(jié)點(diǎn)
                    Node node = root.getFirstChild();
                    while(node != null) {
                        String nodeName = node.getNodeName().trim();
                        String nodeValue = node.getTextContent().trim();
                        if("stock".equals(nodeName) && node.hasChildNodes()) {
                            Node  nodeOne =  node.getFirstChild();
                            while(nodeOne != null) {
                             String nodeOneName = nodeOne.getNodeName().trim();
                             if("node".equals(nodeOneName) && nodeOne.hasChildNodes()){
                                 Map<String, Object> nodeMap = new HashMap<String, Object>();
                                  Node threeNode = nodeOne.getFirstChild();
                                    while(threeNode != null) {
                                        nodeMap.put(threeNode.getNodeName(), threeNode.getTextContent());
                                        threeNode = threeNode.getNextSibling();
                                    }
                                    nodeList.add(nodeMap);
                                  }
                               nodeOne = nodeOne.getNextSibling();
                               }
                            }else{
                                sendMap.put(nodeName, nodeValue);
                            }
                        node = node.getNextSibling();
                        }                    
                    sendMap.put("node", nodeList);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println(sendMap);
          }  


    打印結(jié)果:{node=[{direct=1, market=0, symbol=600104, avgprice=21.010, holdnum=299, type=0},
                 {direct=1, market=0, symbol=601818, avgprice=4.993, holdnum=4, type=0}],
                  num=2, seqid=, client=0BF3F2D9A01797BBF05D6BC89877DC91, stockm=6778.84, cash=5669.13, ename=108-wc, code=0, totalm=12447.97, msg=成功}
    posted @ 2015-08-09 10:09 藤本薔薇 閱讀(476) | 評(píng)論 (0)編輯 收藏
    /Files/kokosang/DoubleUtil.txt



    package frameWork.util;
    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    /**   
     * 由于Java的簡(jiǎn)單類型不能夠精確的對(duì)浮點(diǎn)數(shù)進(jìn)行運(yùn)算,這個(gè)工具類提供精   
     * 確的浮點(diǎn)數(shù)運(yùn)算,包括加減乘除和四舍五入。   
     */    
    public class DoubleUtil {
    //這個(gè)類不能實(shí)例化    
    private DoubleUtil(){    
    }  
    //默認(rèn)除法運(yùn)算精度    
    private static final int DEF_DIV_SCALE = 10;  
    //默認(rèn)的保留位數(shù)
    private static DecimalFormat df=new DecimalFormat("0.00");  
    /**
    * 按照格式保留幾位
    * @param money  double數(shù)
    * @param format 格式
    * @return
    */
    public static double  format(double money,String format){
    if(format != null && format != ""){
    df=new DecimalFormat(format); 
    }
    double moneyformat=new Double(df.format(money).toString());  
    return moneyformat;
    }
    /**   
    * 提供精確的加法運(yùn)算。   
    * @param v1 被加數(shù)   
    * @param v2 加數(shù)   
    * @return 兩個(gè)參數(shù)的和   
    */    
    public static double add(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.add(b2).doubleValue();    
    }    
    /**   
    * 提供精確的減法運(yùn)算。   
    * @param v1 被減數(shù)   
    * @param v2 減數(shù)   
    * @return 兩個(gè)參數(shù)的差   
    */    
    public static double sub(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.subtract(b2).doubleValue();    
    }    
    /**   
    * 提供精確的乘法運(yùn)算。   
    * @param v1 被乘數(shù)   
    * @param v2 乘數(shù)   
    * @return 兩個(gè)參數(shù)的積   
    */    
    public static double mul(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.multiply(b2).doubleValue();    
    }    
    /**   
    * 提供(相對(duì))精確的除法運(yùn)算,當(dāng)發(fā)生除不盡的情況時(shí),精確到   
    * 小數(shù)點(diǎn)以后10位,以后的數(shù)字四舍五入。   
    * @param v1 被除數(shù)   
    * @param v2 除數(shù)   
    * @return 兩個(gè)參數(shù)的商   
    */    
    public static double div(double v1,double v2){    
    return div(v1,v2,DEF_DIV_SCALE);    
    }    
    /**   
    * 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指   
    * 定精度,以后的數(shù)字四舍五入。   
    * @param v1 被除數(shù)   
    * @param v2 除數(shù)   
    * @param scale 表示表示需要精確到小數(shù)點(diǎn)以后幾位。   
    * @return 兩個(gè)參數(shù)的商   
    */    
    public static double div(double v1,double v2,int scale){    
    if(scale<0){    
    throw new IllegalArgumentException("The scale must be a positive integer or zero");    
    }    
    BigDecimal b1 = new BigDecimal(Double.toString(v1));    
    BigDecimal b2 = new BigDecimal(Double.toString(v2));    
    return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();    
    }    
    /**   
    * 提供精確的小數(shù)位四舍五入處理。   
    * @param v 需要四舍五入的數(shù)字   
    * @param scale 小數(shù)點(diǎn)后保留幾位   
    * @return 四舍五入后的結(jié)果   
    */    
    public static double round(double v,int scale){    
    if(scale<0){    
    throw new IllegalArgumentException("The scale must be a positive integer or zero");    
    }    
    BigDecimal b = new BigDecimal(Double.toString(v));    
    BigDecimal one = new BigDecimal("1");    
    return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();    
    }    
    /**   
    * 提供精確的類型轉(zhuǎn)換(Float)   
    * @param v 需要被轉(zhuǎn)換的數(shù)字   
    * @return 返回轉(zhuǎn)換結(jié)果   
    */    
    public static float convertsToFloat(double v){    
    BigDecimal b = new BigDecimal(v);    
    return b.floatValue();    
    }    
    /**   
    * 提供精確的類型轉(zhuǎn)換(Int)不進(jìn)行四舍五入   
    * @param v 需要被轉(zhuǎn)換的數(shù)字   
    * @return 返回轉(zhuǎn)換結(jié)果   
    */    
    public static int convertsToInt(double v){    
    BigDecimal b = new BigDecimal(v);    
    return b.intValue();    
    }    
    /**   
    * 提供精確的類型轉(zhuǎn)換(Long)   
    * @param v 需要被轉(zhuǎn)換的數(shù)字   
    * @return 返回轉(zhuǎn)換結(jié)果   
    */    
    public static long convertsToLong(double v){    
    BigDecimal b = new BigDecimal(v);    
    return b.longValue();    
    }    
    /**   
    * 返回兩個(gè)數(shù)中大的一個(gè)值   
    * @param v1 需要被對(duì)比的第一個(gè)數(shù)   
    * @param v2 需要被對(duì)比的第二個(gè)數(shù)   
    * @return 返回兩個(gè)數(shù)中大的一個(gè)值   
    */    
    public static double returnMax(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(v1);    
    BigDecimal b2 = new BigDecimal(v2);    
    return b1.max(b2).doubleValue();    
    }    
    /**   
    * 返回兩個(gè)數(shù)中小的一個(gè)值   
    * @param v1 需要被對(duì)比的第一個(gè)數(shù)   
    * @param v2 需要被對(duì)比的第二個(gè)數(shù)   
    * @return 返回兩個(gè)數(shù)中小的一個(gè)值   
    */    
    public static double returnMin(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(v1);    
    BigDecimal b2 = new BigDecimal(v2);    
    return b1.min(b2).doubleValue();    
    }    
    /**   
    * 精確對(duì)比兩個(gè)數(shù)字   
    * @param v1 需要被對(duì)比的第一個(gè)數(shù)   
    * @param v2 需要被對(duì)比的第二個(gè)數(shù)   
    * @return 如果兩個(gè)數(shù)一樣則返回0,如果第一個(gè)數(shù)比第二個(gè)數(shù)大則返回1,反之返回-1   
    */    
    public static int compareTo(double v1,double v2){    
    BigDecimal b1 = new BigDecimal(v1);    
    BigDecimal b2 = new BigDecimal(v2);    
    return b1.compareTo(b2);    
    }
    /**
    * 格式化double
    * @param arg0
    * @param num
    * @return
    */
    public static String doubleFormat(double arg0,Integer num){
    DecimalFormat df = new DecimalFormat("####.00"); 
    /*DecimalFormat df2 = new DecimalFormat("##.00%");  
    DecimalFormat df3 = new DecimalFormat("###,##0.00");*/
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("####.0"); 
    }else if(num == 2){
    df = new DecimalFormat("####.00"); 
    }else if(num == 3){
    df = new DecimalFormat("####.000"); 
    }else if(num == 4){
    df = new DecimalFormat("####.0000"); 
    }
    }else{
    df = new DecimalFormat("####"); 
    }
    if(df.format(arg0).contains(".")){
    if(df.format(arg0).substring(0, df.format(arg0).indexOf(".")).length()<=0){
    df = new DecimalFormat("0.00");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("0.0"); 
    }else if(num == 2){
    df = new DecimalFormat("0.00"); 
    }else if(num == 3){
    df = new DecimalFormat("0.000"); 
    }else if(num == 4){
    df = new DecimalFormat("0.0000"); 
    }
    }else{
    df = new DecimalFormat("0"); 
    }
    }
    }
    return df.format(arg0);
    }
    /**
    * 百分比格式化
    * @param arg0
    * @param num
    * @return
    */
    public static String percentageFormat(double arg0,Integer num){
    DecimalFormat df = new DecimalFormat("##.00%");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("####.0%"); 
    }else if(num == 2){
    df = new DecimalFormat("####.00%"); 
    }else if(num == 3){
    df = new DecimalFormat("####.000%"); 
    }else if(num == 4){
    df = new DecimalFormat("####.0000%"); 
    }
    }else{
    df = new DecimalFormat("####%"); 
    }
    if(df.format(arg0).contains(".")){
    if(df.format(arg0).substring(0, df.format(arg0).indexOf(".")).length()<=0){
    df = new DecimalFormat("0.00%");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("0.0%"); 
    }else if(num == 2){
    df = new DecimalFormat("0.00%"); 
    }else if(num == 3){
    df = new DecimalFormat("0.000%"); 
    }else if(num == 4){
    df = new DecimalFormat("0.0000%"); 
    }
    }else{
    df = new DecimalFormat("0%"); 
    }
    }
    }
    return df.format(arg0);
    }
    /**
    * double每三位短號(hào)分割
    * @param arg0
    * @param num
    * @return
    */
    public static String splitNumberFormat(double arg0,Integer num){
    DecimalFormat df = new DecimalFormat("###,##0.00");
    if(num !=null){
    if(num == 1){
    df = new DecimalFormat("###,##0.0"); 
    }else if(num == 2){
    df = new DecimalFormat("###,##0.00"); 
    }else if(num == 3){
    df = new DecimalFormat("###,##0.000"); 
    }else if(num == 4){
    df = new DecimalFormat("###,##0.0000"); 
    }
    }else{
    df = new DecimalFormat("###,###"); 
    }
    return df.format(arg0);
    }
    }
    posted @ 2015-08-07 13:47 藤本薔薇 閱讀(587) | 評(píng)論 (0)編輯 收藏
    假如  redis  在/usr/local/bin

    配置文件在/usr/local/redis-2.8.21 

     root@iZ239bujfzrZ:    /usr/local/bin# ./redis-server redis.conf nohup 
    posted @ 2015-08-07 10:36 藤本薔薇 閱讀(213) | 評(píng)論 (0)編輯 收藏

          public static interface NUMBER{
    public static String STR_FORMAT = "00000"; 
            static String TOKEN = null; 
    }


    //配資單號(hào)格式
        public static String AddOne(String code){
       Integer intHao = Integer.parseInt(code);
       intHao++;
       DecimalFormat df = new DecimalFormat(NUMBER.STR_FORMAT);
       return df.format(intHao);
        }
        
        public static void main(String[] args) {
        String code = "ASD0034252345234500001";
           String  xlh = code.substring(code.length()-5, code.length());
           System.out.println("數(shù)據(jù)庫(kù)原有的最大序列號(hào):"+xlh);
           if(xlh!=null){
          System.out.println("累加的新生成的序列號(hào):"+AddOne(xlh));
           }else{
          System.out.println("最新的新生成的序列號(hào):"+"00001"); //如果沒有手動(dòng)生成一條最小的
           }
      }
        
    posted @ 2015-08-03 11:50 藤本薔薇 閱讀(451) | 評(píng)論 (0)編輯 收藏
        /**
         * 獲取股票板塊信息
         * 滬市A股 : 600、601、603 開頭
         * 深市A股 : 000開頭
         * 中小板 : 002開頭
         * 創(chuàng)業(yè)板 : 300開頭
         * 滬市新股申購(gòu):730
         * @param code
         * @return
         */
        public static int getPlateInfo(String code){
        if(code.startsWith("600") || code.startsWith("601") || code.startsWith("603")){
        return 0;
        }else if(code.startsWith("000")){
        return 1;
        }else if(code.startsWith("002")){
        return 2;
        }else if(code.startsWith("300")){
        return 3;
        }else if(code.startsWith("730")){
        return 4;
        }else {
        return 5;
        }
        }
    posted @ 2015-07-29 19:07 藤本薔薇 閱讀(373) | 評(píng)論 (0)編輯 收藏
     
                我想把String 類型 yyyy-MM-dd 格式的數(shù)據(jù)轉(zhuǎn)換成 String 類型  yyyyMMdd 格式,然后

    String end_date = "2015-09-07";
            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); 
            Date date_2 = formatter.parse(end_date);
    String date_22 = formatter.format(date_2);
    System.out.println(date_2);
    System.out.println(date_22);

      
            打印出來結(jié)果是:
                    Tue Dec 09 00:00:00 CST 2014
                    20141209

           后來,吾家上神告知,不能直接轉(zhuǎn)
          
                    String end_date = "2015-09-07";
    DateFormat format =new SimpleDateFormat("yyyy-MM-dd");
    Date date_1 = format.parse(end_date);
    format = new SimpleDateFormat("yyyyMMdd");  
    String date_11 = format.format(date_1);
    System.out.println(date_1);
    System.out.println(date_11);


          打印出來結(jié)果是:

                   Mon Sep 07 00:00:00 CST 2015
                   20150907


        總結(jié)語(yǔ): 吾家上神棒棒噠!!!

    posted @ 2015-07-27 16:27 藤本薔薇 閱讀(203) | 評(píng)論 (0)編輯 收藏
             
                 原本寫了 if  else  判斷股票所屬板塊的,覺得繁瑣,就去改了下面的

                      public static void main(String[] args) {
        String code ="002348";
        String stock = "002".equals(code.substring(0,3)) ? "002" : code.substring(0,1);
    System.out.println(stock);
    }

                   然后跑去得瑟,被鄙視了,然后  ↓↓↓↓

                     public static String getPlateInfo(String code){
        return code.startsWith("002") ? "002" : code.substring(0,1);
                      }

                還補(bǔ)了一刀,你看你寫的什么玩意兒,哼,好想讓他跪搓衣板
    posted @ 2015-07-02 00:26 藤本薔薇 閱讀(231) | 評(píng)論 (0)編輯 收藏
    Map<String, Object> userInfoMap = new HashMap<String, Object>();
    // String data = JsonUtil.toJson(infoMap);
    userInfoMap.put("agent", agent);
    userInfoMap.put("ename", ename);
    Map<String, Object> infoMap = SocketLogic.logic.userInfo(userInfoMap);
    JSONObject rootObj = (JSONObject)JSONObject.toJSON(infoMap);
    JSONArray nodeArr = rootObj.getJSONArray("node");
    for(int i = 0; i < nodeArr.size(); i ++) {
    authority = nodeArr.getJSONObject(i).get("authority").toString();          //交易權(quán)限
    margin = nodeArr.getJSONObject(i).getLongValue("margin");  //保證金
    warn = nodeArr.getJSONObject(i).getFloatValue("warn");      //警戒線
    close = nodeArr.getJSONObject(i).getFloatValue("close");    //平倉(cāng)線
    end =  nodeArr.getJSONObject(i).getLongValue("end");       //結(jié)束時(shí)間
    mainp = nodeArr.getJSONObject(i).getFloatValue("mainp"); //主板單票比例
    midp = nodeArr.getJSONObject(i).getFloatValue("midp");   //中小板單票比例
    growp = nodeArr.getJSONObject(i).getFloatValue("growp"); //創(chuàng)業(yè)板單票比例
       
    }
    posted @ 2015-06-29 19:20 藤本薔薇 閱讀(336) | 評(píng)論 (1)編輯 收藏
    轉(zhuǎn)自 : http://wzf7065.iteye.com/blog/1567587



    public class StringTest {
        private static int counter = 0;
        public static void main(String[] args) {
        String str1 = "sd& ^^java***java(((java";
        String str2 = "java";
        int i = countStr(str1, str2);
        System.out.println("i---------->" + i);
        }
        /**
         * 判斷str1中包含str2的個(gè)數(shù)
          * @param str1
         * @param str2
         * @return counter
         */
        public static int countStr(String str1, String str2) {
            if (str1.indexOf(str2) == -1) {
           return 0;
            } else if (str1.indexOf(str2) != -1) {
           counter++;
           countStr(str1.substring(str1.indexOf(str2) +
                       str2.length()), str2);
                   return counter;
            }
           return 0;
        }
    }
    posted @ 2015-06-23 14:47 藤本薔薇 閱讀(1428) | 評(píng)論 (0)編輯 收藏

             select * from  table order by  id   limit    (intPage - 1) * PageRow    , intPage * PageRow




    去重SQL

    select product_code,count(*) as count from h_product_info group by product_code having count>1; 
    select d_date,count(*) as count from h_oddnum group by d_date having count>1 order by d_date desc; 
    delete from h_oddnum where id in (select min(id) from h_oddnum group by d_date having count(d_date) > 1) 
    create table tmp as select min(id) as col1 from blur_article group by title;
    delete from blur_article where id not in (select col1 from tmp); 
    drop table tmp;
    select min(id) from h_oddnum group by d_date having count(d_date) > 1
    create table tmp as select min(id) as col1 from h_oddnum group by d_date having count(d_date) > 1;
    delete from h_oddnum where id not in (select col1 from tmp); 
    drop table tmp;
    insert into h_oddnum(id,d_date,d_code) values('e1d64c5f536b4b1bbfe9f04511c01f3f','20150422172207','00001');
    posted @ 2015-05-19 17:12 藤本薔薇 閱讀(178) | 評(píng)論 (0)編輯 收藏
    posted @ 2015-05-04 10:18 藤本薔薇 閱讀(143) | 評(píng)論 (0)編輯 收藏

    只能有四位,且可以是數(shù)字和字母的混合


    [A-Za-z0-9]{4}
    posted @ 2015-04-24 11:53 藤本薔薇 閱讀(183) | 評(píng)論 (0)編輯 收藏
     double rounded = (b1.multiply(b2).multiply(b3)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

    java 四舍五入保留小數(shù)(copy)

     
    // 方式一:
    double f = 3.1516;
    BigDecimal b = new BigDecimal(f);
    double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
     
    // 方式二:
    new java.text.DecimalFormat("#.00").format(3.1415926);
    // #.00 表示兩位小數(shù) #.0000四位小數(shù) 以此類推…
     
    // 方式三:
    double d = 3.1415926;
    String result = String.format("%.2f", d);
    // %.2f %. 表示 小數(shù)點(diǎn)前任意位數(shù) 2 表示兩位小數(shù) 格式后的結(jié)果為f 表示浮點(diǎn)型。
     
    //方法四:
    Math.round(5.2644555 * 100) * 0.01d;
    //String.format("%0" + 15 + "d", 23) 23不足15為就在前面補(bǔ)0

    posted @ 2015-04-24 11:47 藤本薔薇 閱讀(729) | 評(píng)論 (0)編輯 收藏

    在項(xiàng)目當(dāng)中,對(duì)于double類型數(shù)據(jù)的使用比較頻繁。尤其是處理金錢相關(guān)的數(shù)據(jù),在使用Double類型的數(shù)據(jù)時(shí),涉及到精度,顯示,四舍五入等等問題。

    1.  顯示問題,當(dāng)double 數(shù)據(jù) 小于 0.0001 大于等于 10000000時(shí),直接轉(zhuǎn)為String輸出時(shí),會(huì)顯示為科學(xué)計(jì)數(shù)法。

       1:  double double1 = 0.00009;
       2:  System.out.println(double1); // 9.0E-5
       3:         
       4:  double double2 = 10000000;
       5:  System.out.println(double2); // 1.0E7

    需要使用DecimalFormat 轉(zhuǎn)化輸出

       1:  DecimalFormat formate = new DecimalFormat("#.######");
       2:  System.out.println(formate.format(double1)); //0.00009
       3:          
       4:  formate = new DecimalFormat("########.##");
       5:  System.out.println(formate.format(double2));//10000000
     
    這里面會(huì)有四舍五入問題:
       1:  double double1 = 0.000096789;
       2:  DecimalFormat formate = new DecimalFormat("#.######");
       3:  System.out.println(formate.format(double1)); //0.000097

    當(dāng)取小數(shù)點(diǎn)后六位時(shí),會(huì)在第七位四舍五入。

     

    2. 誤差問題,兩個(gè)Double類型的數(shù),進(jìn)行運(yùn)算。經(jīng)常會(huì)產(chǎn)生誤差。

       1:  System.out.println(0.05 + 0.01); //0.060000000000000005
       2:  System.out.println(1.0 - 0.42);  //0.5800000000000001
       3:  System.out.println(4.015 * 100); //401.49999999999994
       4:  System.out.println(123.3 / 100); //1.2329999999999999

    看似簡(jiǎn)單的計(jì)算,結(jié)果卻出人意料。解決方法是將Double轉(zhuǎn)為BigDecimal。調(diào)用BigDecimal的 運(yùn)算。

       1:   double d1 = 0.05;
       2:   double d2 = 0.01;
       3:   BigDecimal b1 = new BigDecimal(Double.toString(d1));
       4:   BigDecimal b2 = new BigDecimal(Double.toString(d2));
       5:   System.out.println(b1.add(b2));  //0.06
     
    需要注意的是,如果new BigDecimal()時(shí)使用的是double類型的構(gòu)造方法。問題依舊是可能存在的,這邊要使用String參數(shù)的構(gòu)造方法。
     
    3. 兩個(gè)double比較的問題。將double數(shù)的運(yùn)算結(jié)果和0比較。由于精度問題,比如if(1-0.999999999999999999 == 0.0) 這個(gè)是成立的。
     
    附上double數(shù)的運(yùn)算:
       1:      /**
       2:       * 兩個(gè)Double數(shù)相加
       3:       * 
       4:       * @param v1
       5:       * @param v2
       6:       * @return
       7:       */
       8:      public static double doubleAdd(Double v1, Double v2) {
       9:   
      10:          BigDecimal b1 = new BigDecimal(v1.toString());
      11:   
      12:          BigDecimal b2 = new BigDecimal(v2.toString());
      13:   
      14:          return b1.add(b2).doubleValue();
      15:   
      16:      }
      17:   
      18:      /**
      19:       * 兩個(gè)Double數(shù)相減
      20:       * 
      21:       * @param v1
      22:       * @param v2
      23:       * @return
      24:       */
      25:      public static double doubleSub(Double v1, Double v2) {
      26:   
      27:          BigDecimal b1 = new BigDecimal(v1.toString());
      28:   
      29:          BigDecimal b2 = new BigDecimal(v2.toString());
      30:   
      31:          return b1.subtract(b2).doubleValue();
      32:   
      33:      }
      34:   
      35:      /**
      36:       * 兩個(gè)Double數(shù)相乘
      37:       * 
      38:       * @param v1
      39:       * @param v2
      40:       * @return
      41:       */
      42:      public static double doubleMul(Double v1, Double v2) {
      43:   
      44:          BigDecimal b1 = new BigDecimal(v1.toString());
      45:   
      46:          BigDecimal b2 = new BigDecimal(v2.toString());
      47:   
      48:          return b1.multiply(b2).doubleValue();
      49:   
      50:      }
      51:   
      52:      /**
      53:       * 兩個(gè)Double數(shù)相除
      54:       * 
      55:       * @param v1
      56:       * @param v2
      57:       * @return
      58:       */
      59:      public static double doubleDiv(Double v1, Double v2) {
      60:   
      61:          BigDecimal b1 = new BigDecimal(v1.toString());
      62:   
      63:          BigDecimal b2 = new BigDecimal(v2.toString());
      64:   
      65:          return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP)
      66:                  .doubleValue();
      67:   
      68:      }
      69:   
      70:      /**
      71:       * 兩個(gè)Double數(shù)相除,并保留scale位小數(shù)
      72:       * 
      73:       * @param v1
      74:       * @param v2
      75:       * @param scale
      76:       * @return
      77:       */
      78:      public static double doubleDiv(Double v1, Double v2, int scale) {
      79:   
      80:          if (scale < 0) {
      81:   
      82:              throw new IllegalArgumentException(
      83:   
      84:              "The scale must be a positive integer or zero");
      85:   
      86:          }
      87:          int DEF_DIV_SCALE = 10;
      88:   
      89:          BigDecimal b1 = new BigDecimal(v1.toString());
      90:   
      91:          BigDecimal b2 = new BigDecimal(v2.toString());
      92:   
      93:          return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
      94:   
      95:      }
    posted @ 2015-04-22 18:11 藤本薔薇 閱讀(178) | 評(píng)論 (0)編輯 收藏
    語(yǔ)句對(duì)的,但不能執(zhí)行
    delete from h_oddnum where id in (select min(id) from h_oddnum group by d_date having count(d_date) > 1) 

    只能創(chuàng)建臨時(shí)表刪除

    create table tmp as select min(id) as col1 from h_oddnum group by d_date having count(d_date) > 1;
    delete from h_oddnum where id not in (select col1 from tmp); 
    drop table tmp;
    posted @ 2015-04-22 16:50 藤本薔薇 閱讀(140) | 評(píng)論 (0)編輯 收藏
        Date date = new Date("2014/1/10 18:20");
            Date date2 = new Date("2014/1/11 3:5");
            long temp = date2.getTime() - date.getTime();    //相差毫秒數(shù)
            long hours = temp / 1000 3600;                //相差小時(shí)數(shù)
            long temp2 = temp % (1000 3600);
            long mins = temp2 / 1000 60;                    //相差分鐘數(shù)
            System.out.println("date2 與 date 相差" + hours + "小時(shí)"+ mins + "分鐘");
    posted @ 2015-04-16 10:40 藤本薔薇 閱讀(136) | 評(píng)論 (0)編輯 收藏
    啟動(dòng)jmeter時(shí)
    invalid or corrupt jarfile ApacheJmeter.jar  
    errorlevel=1

    后來才發(fā)現(xiàn)是本地jdk配置版本過低是jdk1.5
    如是將環(huán)境變量里面的java_home 里面的F:\Installed---success---go\jdk1.5改為C:\Program Files\Java\jdk1.7.0_45
    運(yùn)行
    jmeter解壓文件下面bin里面的jmeter.bat 啟動(dòng)成功










    posted @ 2015-04-14 10:20 藤本薔薇 閱讀(470) | 評(píng)論 (0)編輯 收藏
       BigDecimal b1 = new BigDecimal(Double.toString(service_charge*matching_term));
       BigDecimal b2 = new BigDecimal(Double.toString(0.7));
                BigDecimal b3 = new BigDecimal(Double.toString(0.3));
          
    //利息
    Double interest = b1.multiply(b2).doubleValue();
    posted @ 2015-04-13 14:09 藤本薔薇 閱讀(126) | 評(píng)論 (0)編輯 收藏
    主站蜘蛛池模板: 亚洲综合校园春色| 成人免费淫片在线费观看| 4480yy私人影院亚洲| 国产精品免费高清在线观看| 亚洲国产精品SSS在线观看AV| 最近国语视频在线观看免费播放| 亚洲综合亚洲综合网成人| 一级成人生活片免费看| 亚洲午夜福利精品久久| 中文字幕在线视频免费观看| 亚洲熟妇无码乱子AV电影| a级毛片视频免费观看| 亚洲成av人片在线观看无码不卡| 日韩电影免费在线观看中文字幕 | 亚洲国产综合在线| 4虎永免费最新永久免费地址| 亚洲国产成人精品青青草原| 野花高清在线观看免费完整版中文 | 亚洲码国产精品高潮在线| 国产色爽免费无码视频| 亚洲AV无码一区东京热久久 | 国产精品99久久免费观看| 亚洲国产一区二区a毛片| 久久久久久精品免费看SSS| 亚洲午夜成激人情在线影院| 成年在线观看免费人视频草莓| 亚洲中文无码卡通动漫野外| 国产精品美女自在线观看免费| 成人嫩草影院免费观看| 亚洲精品无码久久千人斩| 亚欧免费一级毛片| 亚洲jjzzjjzz在线观看| 日韩在线看片免费人成视频播放| 黄色网址大全免费| 亚洲日韩aⅴ在线视频| 1000部拍拍拍18勿入免费视频软件 | 国产亚洲一区二区在线观看| 日韩精品久久久久久免费| 亚洲an日韩专区在线| 国产精品极品美女免费观看| 国产精品免费久久久久久久久|