[Java]常用數字函數

字串取小數幾位,不足碼補零

package com.yslifes.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class NumberUtils {
    /**
     * 字串取小數幾位
     * 
     * @param str
     *            字串(數字)
     * @param precision
     *            小數幾碼
     * @return 取好的字串
     */
    public static String MarkUpZero(String str, int precision) {
        String maskup = "00000000000";
        String retVal = str;

        retVal = StringUtils.nvl(retVal, "0");

        if (precision == 0) {
            int idx = retVal.indexOf(".");
            if (idx == -1)
                return retVal;
            else
                return retVal.substring(0, idx);
        }
        if (precision > 0 && retVal.indexOf(".") == -1) {
            retVal += ".";
        }
        int len = retVal.indexOf(".");

        return (retVal + maskup).substring(0, retVal.indexOf("."))
                + (retVal + maskup).substring(retVal.indexOf("."), len
                        + precision + 1);

    }
    public static void main(String args[]) {
        System.out.println("22222取小數二位:\t\t\t"+MarkUpZero("22222", 2));
        System.out.println("22222.1取小數二位:\t\t"+MarkUpZero("22222.1", 2));
        System.out.println("22222.11111取小數二位:\t\t"+MarkUpZero("22222.11111", 2));
        System.out.println("22222.1取小數零位:\t\t"+MarkUpZero("22222.1", 0));
        
        
    }
}

Read More

[Java]常用的字串String函數function

字串或數字不足碼部份補零

/**
     * 數字不足部份補零回傳
     * @param str 數字
     * @param lenSize 數字最大長度,不足的部份補零
     * @return 回傳補零後字串數字
     */
    public static String MakesUpZero(int str, int lenSize) {
        return MakesUpZero(String.valueOf(str), lenSize);
    }

    /**
     * 數字不足部份補零回傳
     * @param str 字串
     * @param lenSize 字串數字最大長度,不足的部份補零
     * @return 回傳補零後字串數字
     */
    public static String MakesUpZero(String str, int lenSize) {
        String zero = "0000000000";
        String returnValue = zero;

        returnValue = zero + str;

        return returnValue.substring(returnValue.length() - lenSize);

    }
    public static void main(String args[])
    {
        //把字串123前方不足五碼的部份補零
        System.out.println("不足5碼部份補零:"+StringUtils.MakesUpZero("123", 5));
        //把數字123前方不足六碼的部份補零
        System.out.println("不足6碼部份補零:"+StringUtils.MakesUpZero(123, 6));
    }

Read More

Java程式Mail、EDM(電子型錄)寄送

這個範例主要的概念是抓取網路上EDM的html內容,讀取外部的寄送email清單文字檔,依續一個個email寄送出EDM內容,寄送的每一封信件都使用thread來獨立完成,而且寄送中間都有固定的間隔時間。

JavaMail是Java用來處理Mail事件的一個Framework,提供寄信SMTP、收信POP3等常用到的Mail Protocol,主要由sun(目前為oracle)來維護,是一個官方的套件,可由此下載

發送Mail的主體程式Thread

Mail發送的內容為html,所以需要使用Multipart來承載內容,如果是純文字則可直接使用Message的setContent來加入信件內容。

Read More