⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i18nutil.java

📁 负责公文的传输及一些处理功能
💻 JAVA
字号:
/*
 * $Id: I18nUtil.java,v 1.1 2001/08/13 05:07:16 gmurray Exp $
 * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
 * Copyright 2001 Sun Microsystems, Inc. Tous droits r?erv?.
 */

package com.example.util;

import java.util.Locale;
import java.util.Vector;
import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.text.BreakIterator;
import java.util.Locale;
import java.io.ByteArrayOutputStream;

import com.example.util.tracer.Debug;

/**
 * This utility class for internationalization. This class provides a
 * central location to do specialized formatting in both
 * a default and a locale specfic manner.
 */
public final class I18nUtil extends Object {


    /**
     * Converts a String SJIS or JIS URL encoded hex encoding to a Unicode String
     *
    */
    public static String convertJISEncoding(String target) {
	ByteArrayOutputStream bos = new ByteArrayOutputStream();
	if (target == null) return null;
	String paramString = target.trim();

	for (int loop =0; loop < paramString.length(); loop++) {
	    int i = (int)paramString.charAt(loop);
	    bos.write(i);
	}
	String convertedString = null;
	try {
	    convertedString =  new String(bos.toByteArray(), "JISAutoDetect");
	} catch (java.io.UnsupportedEncodingException uex) {}
	return convertedString;
    }


  public static String formatCurrency(double amount, int precision, String pattern, Locale locale){
	NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
	DecimalFormat df = (DecimalFormat)nf;
	df.setMinimumFractionDigits(precision);
	df.setMaximumFractionDigits(precision);
	df.setDecimalSeparatorAlwaysShown(true);
	df.applyPattern(pattern);
	return df.format(amount);
    }

    public static String formatNumber(double amount, int precision, String pattern, Locale locale){
	NumberFormat nf = NumberFormat.getNumberInstance(locale);
	DecimalFormat df = (DecimalFormat)nf;
	df.setMinimumFractionDigits(precision);
	df.setMaximumFractionDigits(precision);
	df.setDecimalSeparatorAlwaysShown(true);
	df.applyPattern(pattern);
	return df.format(amount);
    }

    public static String formatCurrency(double amount, int precision, Locale locale){
	NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
	nf.setMinimumFractionDigits(precision);
	nf.setMaximumFractionDigits(precision);
	return nf.format(amount);
    }

    public static String formatNumber(double amount, int precision, Locale locale){
	NumberFormat nf = NumberFormat.getNumberInstance(locale);
	nf.setMinimumFractionDigits(precision);
	nf.setMaximumFractionDigits(precision);
	return nf.format(amount);
    }

    public static  Vector parseKeywords(String keywordString){
	if (keywordString != null){
	    Vector keywords = new Vector();
	    BreakIterator breakIt = BreakIterator.getWordInstance();
	    int index=0;
	    int previousIndex =0;
	    breakIt.setText(keywordString);
	    try{
		while(index < keywordString.length()){
		    previousIndex = index;
		    index = breakIt.next();
		    String word = keywordString.substring(previousIndex, index);
		    if (!word.trim().equals("")) keywords.addElement(word);
		}
		return keywords;
	    } catch (Throwable e){
		Debug.print(e, "Error while parsing search string");
	    }
	}
	return null;
    }

    public static  Vector parseKeywords(String keywordString, Locale locale){
	if (keywordString != null){
	    Vector keywords = new Vector();
	    BreakIterator breakIt = BreakIterator.getWordInstance(locale);
	    int index=0;
	    int previousIndex =0;
	    breakIt.setText(keywordString);
	    try{
		while(index < keywordString.length()){
		    previousIndex = index;
		    index = breakIt.next();
		    String word = keywordString.substring(previousIndex, index);
		    if (!word.trim().equals("")) keywords.addElement(word);
		}
		return keywords;
	    } catch (Throwable e){
		Debug.print(e, "Error while parsing search string" );
	    }

	}
	return null;
    }

    /**
     * Convert a string based locale into a Locale Object
     * <br>
     * <br>Strings are formatted:
     * <br>
     * <br>language_contry_variant
     *
     **/

    public static Locale getLocaleFromString(String localeString) {
	if (localeString == null) return null;
	if (localeString.toLowerCase().equals("default")) return Locale.getDefault();
	int languageIndex = localeString.indexOf('_');
	if (languageIndex  == -1) return null;
	int countryIndex = localeString.indexOf('_', languageIndex +1);
	String country = null;
	if (countryIndex  == -1) {
	    if (localeString.length() > languageIndex) {
		country = localeString.substring(languageIndex +1, localeString.length());
	    } else {
		return null;
	    }
	}
	int variantIndex = -1;
	if (countryIndex != -1) countryIndex = localeString.indexOf('_', countryIndex +1);
	String language = localeString.substring(0, languageIndex);
	String variant = null;
	if (variantIndex  != -1) {

	    variant = localeString.substring(variantIndex +1, localeString.length());
	}
	if (variant != null) {
	    return new Locale(language, country, variant);
	} else {
	    return new Locale(language, country);
	}

    }

    public final static String iso2Gb(String value) {
      if (value == null)
	return null;
      try {
	return new String(value.getBytes("gb2312"));
      }catch (java.io.IOException e) { return value; }
    }

    public final static String gb2Iso(String value) {
      if (value == null)
	return null;
      try {
	return new String(value.getBytes("ISO-8859-1"));
      }catch (java.io.IOException e) { return value; }
    }

}











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -