[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]聯絡我們表單程式後台

前一篇介紹過聯絡我們的的前台程式,這篇會介紹如何取得前台聯絡表單所留言的內容,使用的網頁使用framework有jquery及easyui,利用datagrid來顯示所有的資料列,而重要的留言內容則顯示於iframe裡,如此可排除大部份的html tag產生的問題。

這程式目前缺少了幾個功能,並不影響使用,不過如果有需求的人倒可以自己加入使用:

  • 前台留言後自動發mail給某位管理者
  • 後台可回覆留言給使用者,寄送mail或電話聯絡後寫下聯絡事項

最主要是JavaMail的使用,及資料寫入資料庫的應用。

Read More

[JAVA]連絡我們表單程式前台

這是個很常在官方網頁看到的程式,在這種表單之前要與官方網站人員連絡,只能使用email,只是這email address會被人故意的收集,發送垃圾郵件,十分讓人困擾。

在表單的設計上,需要讓網站人員能知道是誰留了資料,所以連絡的方式一定要讓使用者留下,所以設計畫面如下:類型、標題、姓名、EMail、電話及內容。

連絡我們表單內容

Read More

[PHP]自動取號(編碼)程式

使用php撰寫程式的人,最常使用的資料庫應該是MySQL,MySQL本身已經有提供自動取號的功能,不過在某些狀況上可能並不適用,而已也有些資料庫並沒有提供自動給號的功能的。

自動取號,主要用在key值的產生,可以得到唯一的編號,而這個編號是有一定規則的,像是(檔頭+年份+流水號)之類的,用來識別此筆資料,而產生這個編號有很多種方式,如:

  • 資料庫本身提供此功能,ex:mysql的Auto Increment
  • 利用一個Table存放目前編號,再使用stored procedure或是程資語言來取號
  • 其它…

之前有寫過一個Oracle Store procedure的取號程式,而這次提供利用php程式來取得編號,取號的原則有幾個來確保取號不會錯誤:

  1. 取號後,不管有無使用,則此編號已不會再產生
  2. 要使用transaction功能來取號及存入取到號碼(此範例並未用到交易)

這個範列的結果

Read More