📄 utilformatout.java
字号:
/*
* $Id: UtilFormatOut.java,v 1.6 2004/02/07 09:42:52 jonesde Exp $
*
* Copyright (c) 2001, 2002 The Open For Business Project - www.ofbiz.org
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
* OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package org.ofbiz.base.util;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
import java.util.Currency;
/**
* General output formatting functions - mainly for helping in JSPs
*
* @author <a href="mailto:jonesde@ofbiz.org">David E. Jones</a>
* @author <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a>
* @version $Revision: 1.6 $
* @since 2.0
*/
public class UtilFormatOut {
public static final String module = UtilFormatOut.class.getName();
public static String safeToString(Object obj) {
if (obj != null) {
return obj.toString();
} else {
return "";
}
}
// ------------------- price format handlers -------------------
static DecimalFormat priceDecimalFormat = new DecimalFormat("#,##0.00");
/** Formats a Double representing a price into a string
* @param price The price Double to be formatted
* @return A String with the formatted price
*/
public static String formatPrice(Double price) {
if (price == null) return "";
return formatPrice(price.doubleValue());
}
/** Formats a double representing a price into a string
* @param price The price double to be formatted
* @return A String with the formatted price
*/
public static String formatPrice(double price) {
return priceDecimalFormat.format(price);
}
/** Formats a double into a properly formatted currency string based on isoCode and Locale
* @param price The price double to be formatted
* @param isoCode the currency ISO code
* @param locale The Locale used to format the number
* @return A String with the formatted price
*/
public static String formatCurrency(double price, String isoCode, Locale locale) {
//Debug.logInfo("formatting currency: " + price + ", isoCode: " + isoCode + ", locale: " + locale, module);
NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
if (isoCode != null && isoCode.length() > 1) {
nf.setCurrency(Currency.getInstance(isoCode));
} else {
Debug.logWarning("No isoCode specified to format currency value:" + price, module);
}
return nf.format(price);
}
/** Formats a double into a properly formatted currency string based on isoCode and Locale
* @param price The price Double to be formatted
* @param isoCode the currency ISO code
* @param locale The Locale used to format the number
* @return A String with the formatted price
*/
public static String formatCurrency(Double price, String isoCode, Locale locale) {
return formatCurrency(price.doubleValue(), isoCode, locale);
}
// ------------------- percentage format handlers -------------------
static DecimalFormat percentageDecimalFormat = new DecimalFormat("##0.##%");
/** Formats a Double representing a percentage into a string
* @param percentage The percentage Double to be formatted
* @return A String with the formatted percentage
*/
public static String formatPercentage(Double percentage) {
if (percentage == null) return "";
return formatPercentage(percentage.doubleValue());
}
/** Formats a double representing a percentage into a string
* @param percentage The percentage double to be formatted
* @return A String with the formatted percentage
*/
public static String formatPercentage(double percentage) {
return percentageDecimalFormat.format(percentage);
}
// ------------------- quantity format handlers -------------------
static DecimalFormat quantityDecimalFormat = new DecimalFormat("#,##0.###");
/** Formats an Long representing a quantity into a string
* @param quantity The quantity Long to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(Long quantity) {
if (quantity == null)
return "";
else
return formatQuantity(quantity.doubleValue());
}
/** Formats an int representing a quantity into a string
* @param quantity The quantity long to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(long quantity) {
return formatQuantity((double) quantity);
}
/** Formats an Integer representing a quantity into a string
* @param quantity The quantity Integer to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(Integer quantity) {
if (quantity == null)
return "";
else
return formatQuantity(quantity.doubleValue());
}
/** Formats an int representing a quantity into a string
* @param quantity The quantity int to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(int quantity) {
return formatQuantity((double) quantity);
}
/** Formats a Float representing a quantity into a string
* @param quantity The quantity Float to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(Float quantity) {
if (quantity == null)
return "";
else
return formatQuantity(quantity.doubleValue());
}
/** Formats a float representing a quantity into a string
* @param quantity The quantity float to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(float quantity) {
return formatQuantity((double) quantity);
}
/** Formats an Double representing a quantity into a string
* @param quantity The quantity Double to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(Double quantity) {
if (quantity == null)
return "";
else
return formatQuantity(quantity.doubleValue());
}
/** Formats an double representing a quantity into a string
* @param quantity The quantity double to be formatted
* @return A String with the formatted quantity
*/
public static String formatQuantity(double quantity) {
return quantityDecimalFormat.format(quantity);
}
public static String formatPaddedNumber(long number, int numericPadding) {
StringBuffer outStrBfr = new StringBuffer(Long.toString(number));
while (numericPadding > outStrBfr.length()) {
outStrBfr.insert(0, '0');
}
return outStrBfr.toString();
}
public static String formatPaddingRemove(String original) {
if (original == null) return null;
StringBuffer orgBuf = new StringBuffer(original);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -