字符串处理工具

来源:互联网 发布:金融互换 知乎 编辑:程序博客网 时间:2024/05/22 20:48

字符串处理工具:

 

生成随机字符串

替换字符串

校验一段字符串是否包含汉字

生成随机目录

格式化数字

格式化百分比

判断是否有小数

import java.io.File;import java.text.DecimalFormat;import java.util.Random;public class StringUtil {private static Object initLock = new Object();private static Random randGen = null;private static char[] numbersAndLetters = null;/** * 生成随机字符串 *  * @param length 长度 * @return String 随机字符串 */public static final String randomNumString(int length) {if (length < 1) {return null;}// 初始化随机数字生成器if (randGen == null) {synchronized (initLock) {if (randGen == null) {randGen = new Random();// 初始化数字、字母数组numbersAndLetters = ("0123456789").toCharArray();}}}// 创建字符缓存数组装入字母和数字char[] randBuffer = new char[length];for (int i = 0; i < randBuffer.length; i++) {randBuffer[i] = numbersAndLetters[randGen.nextInt(9)];}return new String(randBuffer);}/** * 替换字符串 *  * @param line String 输入串 * @param oldString String 被替换的串 * @param newString String 要替换的串 * @return String 替换后的字符串 */public static final String replace(String line, String oldString, String newString) {if (line == null) {return null;}int i = 0;if ((i = line.indexOf(oldString, i)) >= 0) {char[] line2 = line.toCharArray();char[] newString2 = newString.toCharArray();int oLength = oldString.length();StringBuffer buf = new StringBuffer(line2.length);buf.append(line2, 0, i).append(newString2);i += oLength;int j = i;while ((i = line.indexOf(oldString, i)) > 0) {buf.append(line2, j, i - j).append(newString2);i += oLength;j = i;}buf.append(line2, j, line2.length - j);return buf.toString();}return line;}/** * 校验一段字符串是否包含汉字 *  * @param str String * @return boolean */public static boolean isGB2312(String str) {char[] chars = str.toCharArray();boolean isGB2312 = false;for (int i = 0; i < chars.length; i++) {byte[] bytes = ("" + chars[i]).getBytes();if (bytes.length == 2) {int[] ints = new int[2];ints[0] = bytes[0] & 0xff;ints[1] = bytes[1] & 0xff;if (ints[0] >= 0x81 && ints[0] <= 0xFE && ints[1] >= 0x40 && ints[1] <= 0xFE) {isGB2312 = true;break;}}}return isGB2312;}/** * 生成随机目录 *  * @param root * @return */public static String createDir(String root) {String path = randomNumString(4);String slash = File.separator;String first = path.substring(0, 2);String second = path.substring(2, 4);File dir = new File(root + slash + first);if (!dir.isDirectory())dir.mkdir();dir = new File(root + slash + first + slash + second);if (!dir.isDirectory())dir.mkdir();return first + slash + second + slash;}/** * 格式化数字 *  * @param number 数字 * @param pattern 格式 * @return */public static String getFormatNumber(double number, String pattern) {DecimalFormat df = new DecimalFormat(pattern);return df.format(number);}/** * 格式化金额数字,小数位四舍五入(并返回以逗号分隔的字符串) *  * @param number double 数字 * @param digit int 小数位 * @return String */public static String getFormatCurrency(double number, int digit) {String pattern = "#,##0";if (digit > 0) {pattern += ".";for (int i = 0; i < digit; i++) {pattern += "0";}}return getFormatNumber(number, pattern);}/** * 格式化金额数字,小数位四舍五入(并返回以逗号分隔的字符串,保留2位数) *  * @param number * @param digit * @return */public static String getFormatCurrency(double number) {return getFormatCurrency(number, 2);}/** * 格式化金额数字,小数位四舍五入(不带逗号分隔的字符串) *  * @param number double 数字 * @param digit int 小数位 * @return String */public static String getFormatCurrencyNumber(double number, int digit) {String pattern = "###0";if (digit > 0) {pattern += ".";for (int i = 0; i < digit; i++) {pattern += "0";}}return getFormatNumber(number, pattern);}/** * 格式化金额数字,小数位四舍五入(不带逗号分隔的字符串,保留2位数) *  * @param number * @param digit * @return */public static String getFormatCurrencyNumber(double number) {return getFormatCurrencyNumber(number, 2);}/** * 格式化金额数字由pattern 得到所需要的格式 *  * @param number * @param digit * @param pattern * @return */public static String getFormatCurrency(double number, String pattern) {return getFormatNumber(number, pattern);}/** * 格式化百分比(保留小数后2位) *  * @param number double 数字 * @return */public static String getFormatPercent(double number) {return getFormatPercent(number, 2);}/** * 格式化百分比 *  * @param number double 数字 * @param digit int 小数位 * @return */public static String getFormatPercent(double number, int digit) {String pattern = "0";if (digit > 0) {pattern += ".";for (int i = 0; i < digit; i++) {pattern += "0";}}pattern += "%";return getFormatNumber(number, pattern);}/** * 格式化百分比(不带%) *  * @param number * @param digit * @return */public static String getFormatPercentNumber(double number, int digit) {String pattern = "###0";if (digit > 0) {pattern += ".";for (int i = 0; i < digit; i++) {pattern += "0";}}return getFormatNumber(number * 100d, pattern);}/** * 格式化百分比(不带%) *  * @param number * @return */public static String getFormatPercentNumber(double number) {return getFormatPercentNumber(number, 2);}/** * 判断是否有小数 *  * @param num * @return */public static boolean hasDigitNum(double num) {return num % 1.0 != 0.0;}public static String getSize(long size){String ret = String.valueOf(size)+"B";if(size>1048576){//MBret = String.valueOf(getFormatCurrency((double)size/1048576))+"M";}else if(size>1024){//KBret = String.valueOf(getFormatCurrency((double)size/1024))+"K";}return ret;}public static void main(String[] args) {long d = 3222;//System.out.println(getFormatCurrency(d, 2));//System.out.println(hasDigitNum(d));////System.out.println(getFormatPercent(0.50426, 2));//System.out.println(getFormatPercent(0.501));//System.out.println(getFormatPercentNumber(0.50));////System.out.println(getFormatCurrency(d));//System.out.println(getFormatCurrencyNumber(d));System.out.println(getSize(d));}}


 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击