`
zx_code
  • 浏览: 98694 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

stringutil常用工具类

    博客分类:
  • Java
阅读更多
package com.activity.util;

import java.io.File;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

public class StringUtil {
    /**
     * 去除字符串中的空格
     * @param str
     * @return
     * comment by ddb
     */
	public static String trim(String str) {
		return isNullOrBlank(str) ? str : str.trim();
	}
	/**
	 * 如果string为null则返回conv,否则返回string本身
	 * @param string
	 * @param conv
	 * @return
	 * comment by ddb
	 */
	public static String convNull2What(String string, String conv)
    {
        if (string == null)
        {
            return conv;
        }
        return string;
    }
	/**
	 * 如果第一个参数为null,则返回第二个参数,否则返回第一个参数的toString();
	 * @param obj
	 * @param conv
	 * @return
	 * comment by ddb
	 */
	public static String convNull2String(Object obj, String conv)
	    {
	        if (obj == null)
	        {
	            return conv;
	        }
	        return obj.toString();
	    }
	/**
	 * value为原值,key为value字符串中需要替换的部分,replaceValue是替换key的新字符串
	 * 例如: 
	 *   String str = "books";
     *   String rStr=StringUtil.replace(str , "oo", "ee");
     *   System.out.println(rStr);
     *   输出结果为:beeks
	 * @param value
	 * @param key
	 * @param replaceValue
	 * @return
	 * comment by ddb
	 */
	public static String replace(String value, String key, String replaceValue) {
		if (value != null && key != null && replaceValue != null) {
			int pos = value.indexOf(key);

			if (pos >= 0) {
				int length = value.length();
				int start = pos;
				int end = pos + key.length();

				if (length == key.length()) {
					value = replaceValue;
				} else if (end == length) {
					value = value.substring(0, start) + replaceValue;
				} else {
					value = value.substring(0, start) + replaceValue
							+ replace(value.substring(end), key, replaceValue);
				}
			}
		}
		return value;
	}
	/**
	 * 把字符串转换成能适应html编码的形式
	 * @param Str
	 * @return
	 * comment by ddb
	 */
	public static String HtmlStringFilter(String Str) {

		Str = replace(Str, "\n", "");
		Str = replace(Str, "\"", """);
		Str = replace(Str, "\r", "");
		Str = replace(Str, "<", "<");
		Str = replace(Str, ">", ">");
		;
		Str = replace(Str, " ", " ");
		Str = replace(Str, "&amp;nbsp;", " ");
		return Str;
	}
	/**
	 * 如果value字符串为"",则返回true,否则返回false
	 * @param value
	 * @return
	 * comment by ddb
	 */
	public static boolean isBlank(String value) {
		boolean ret = false;
		if (value != null && value.equals("")) {
			ret = true;
		}
		return ret;
	}
	/**
	 * 如果value字符串为null,则返回true,否则返回false
	 * @param value
	 * @return
	 * comment by ddb
	 */
	public static boolean isNull(String value) {
		return value == null ? true : false;
	}
	/**
	 * 如果字符串value为null或者为""则返回true,否则返回false
	 * @param value
	 * @return
	 * comment by ddb
	 */
	public static boolean isNullOrBlank(String value) {
		return isNull(value) || isBlank(value);
	}
	/**
	 * 如果参数fieldValue为""或者为null则返回null字符串,否则返回'fieldValue'形式的字符串
	 * @param fieldValue
	 * @return
	 * comment by ddb
	 */
	public static String fieldValue(String fieldValue) {
		if (StringUtil.isNullOrBlank(fieldValue)) {
			return "null";
		} else {
			return ("'" + fieldValue + "'");
		}

	}

	public static double fieldValue(double fieldValue) {

		return fieldValue;

	}

	public static float fieldValue(float fieldValue) {

		return fieldValue;

	}

	public static int fieldValue(int fieldValue) {

		return fieldValue;

	}

	public static long fieldValue(long fieldValue) {

		return fieldValue;

	}
	/**
	 * 把string类型的数组转换成stringBuffer形式的字符串
	 * 例如:string数组{aa,bb,cc}
	 *  转换后为[aa,bb,cc,]
	 * @param arr
	 * @return
	 * comment by ddb
	 */
	public static String getArrayElementString(String[] arr) {
		StringBuffer ret = new StringBuffer("");
		if (arr == null) {
			return null;
		}

		ret.append("[");
		for (int i = 0; i < arr.length; i++) {
			ret.append(arr[i] + ",");
		}
		ret.append("]");

		return ret.toString();

	}
	/**
	 * 传入一个日期格式,返回改格式的当前日期
	 * @param dateFormat
	 * @return
	 * comment by ddb
	 */
	public static String getCurrDate(String dateFormat) {
		Date date = new Date();
		SimpleDateFormat myDateFormat = new SimpleDateFormat(dateFormat);
		return myDateFormat.format(date);
	}
	/**
	 * 返回当前时间的Date类型
	 * 例如:Tue Feb 15 11:07:54 CST 2011
	 * @return
	 * comment by ddb
	 */
	public static java.util.Date getCurrentDate() {
		return new Date();
	}
	/**
	 *  返回当前系统时间
	 *  例如:2011-02-15 11:04:35.39
	 * @return
	 * comment by ddb
	 */
	public static Timestamp getCurrDateTime() {
		return new Timestamp(System.currentTimeMillis());
	}
	/**
	 * 返回当前时间的Date类型
	 * 例如 2011-02-15
	 * @return
	 * comment by ddb
	 */
	public static java.sql.Date getCurrDate() {
		return new java.sql.Date(System.currentTimeMillis());
	}
	/**
	 * 获得当前的年份
	 * 例如:2011
	 * @return
	 * comment by ddb
	 */
	public static String getCurrYear() {
		return getCurrDate("yyyy");
	}
	/**
	 * 把Date类型转换长String类型
	 * @param date
	 * @return
	 * comment by ddb
	 */
	public static String dateToString(java.util.Date date) {
		SimpleDateFormat myDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		return myDateFormat.format(date);
	}
	/**
	 * 把string类型转换成Date类型
	 * @param strDate
	 * @return
	 * comment by ddb
	 */
	public static java.sql.Date stringToDate(String strDate) {

		java.sql.Date date = null;
		try {
			date = java.sql.Date.valueOf(strDate);
		} catch (Exception ex) {
		}
		return date;
	}

	/**
	 * 把String类型转换为yyyy-MM-dd形式的Date类型
	 * @param strDate
	 * @return
	 * comment by ddb
	 */
	public static java.util.Date stringToUtilDate(String strDate) {
		java.util.Date date = null;
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		try {
			date = df.parse(strDate);
		} catch (Exception ex) {
		}
		return date;
	}
	/**
	 * 把固定格式的日期增加或者减少固定个月
	 * @param offset 月份偏移量,可以为负整数值
	 * @param dateFormat 日期格式
	 * @return
	 * comment by ddb
	 */
	public static String addMonth(int offset, String dateFormat) {
		SimpleDateFormat df = new SimpleDateFormat(dateFormat);
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.MONTH, offset);
		return df.format(calendar.getTime());
	}
	/**
	 * 把改date日期增加或者减少固定个月
	 * @param offset 月份偏移量,可以为负整数值
	 * @param date 日期类型
	 * @return
	 * comment by ddb
	 */
	public static Date addMonth(int offset, Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.MONTH, offset);
		return calendar.getTime();
	}
	/**
	 * 把改date日期增加或者减少固定个天数
	 * @param offset 天数偏移量,可以为负整数值
	 * @param date 日期类型
	 * @return
	 * comment by ddb
	 */
	public static Date addDay(int offset, Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.DATE, offset);
		return calendar.getTime();
	}
	/**
	 * 从开始时间到结束时间所跨越的周数
	 * @param startDate
	 * @param endDate
	 * @return
	 * comment by ddb
	 */
	public static int minusWeek(Date startDate, Date endDate) {

		if (startDate.getTime() >= endDate.getTime()) {
			return 0;
		}

		long startDay = (startDate.getTime() + 4 * DateUtils.DAY)
				/ DateUtils.WEEK;
		long endDay = (endDate.getTime() + 4 * DateUtils.DAY) / DateUtils.WEEK;

		long result = endDay - startDay + 1;

		return new Long(result).intValue();

	}
	/**
	 * 获取当前时间是一周中的某一天,返回值为如下字符串中的一个
	 * "sunday", "monday", "tuestay", "wednesday", "thursday", "friday","saturday" 
	 * @return
	 * comment by ddb
	 */
	public static String getWeekDay() {
		Date date = new Date();
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		int i = c.get(Calendar.DAY_OF_WEEK) - 1;
		String day[] = new String[] { "sunday", "monday", "tuestay", "wednesday", "thursday", "friday",
				"saturday" };
		return day[i];
	}
	
	public static double round(double v, int scale) {

		if (scale < 0) {
			throw new IllegalArgumentException(
					"The scale must be a positive integer or zero");
		}

		BigDecimal b = new BigDecimal(Double.toString(v));
		BigDecimal one = new BigDecimal("1");
		return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	
	public static float floatRound(float a) {
		java.text.DecimalFormat df1 = new java.text.DecimalFormat("######.##");
		return Float.parseFloat(df1.format(a));
	}

	public static double floatRound(double a) {
		java.text.DecimalFormat df1 = new java.text.DecimalFormat("######.##");
		return Double.parseDouble(df1.format(a));
	}

	public static float floatRound1(float a) {
		java.text.DecimalFormat df1 = new java.text.DecimalFormat("######.#");
		return Float.parseFloat(df1.format(a));
	}

	public static String formatFour(int a) {
		java.text.DecimalFormat df1 = new java.text.DecimalFormat("0000");
		return df1.format(a);
	}

	public static String formatNumber(int a, int num) {
		if (num <= 0)
			return null;
		StringBuffer strbuff = new StringBuffer();
		for (int i = 0; i < num; i++) {
			strbuff.append("0");
		}
		java.text.DecimalFormat df1 = new java.text.DecimalFormat(strbuff
				.toString());
		return df1.format(a);
	}

	public static String getNewFileName(String oldFileName) {
		String name = oldFileName.substring(oldFileName.lastIndexOf("/") + 1);
		String extname = name.substring(name.lastIndexOf("."));
		Date now = new Date();
		long i = now.getTime();
		Random r = new Random();
		int rInt = r.nextInt(100);
		String newName = getCurrDate("yyyyMMdd") + new Long(i).toString()
				+ new Integer(rInt).toString() + extname;
		return newName;
	}

	public static String getOldFileName(String oldFileName) {
		String name = oldFileName.substring(oldFileName.lastIndexOf("/") + 1);
		return name;
	}

	public static String[] getFileNameArray(String theFileName) {
		String[] StrArr = {
				theFileName.substring(0, theFileName.indexOf(".") - 1),
				theFileName.substring(theFileName.indexOf(".") + 1) };
		return StrArr;
	}

	public static String getFormatString(String targetStr, String appendStr) {
		if (targetStr == null || targetStr.length() < 1) {
			targetStr = appendStr;
		} else {
			targetStr += "/" + appendStr;
		}
		return targetStr;
	}

	public static void delFolder(String s, boolean delDir) {

		File file1 = new File(s.replaceAll("//", "/").replaceAll("\\/", "/"));
		if (file1.exists() && file1.isDirectory()) {
			File afile[] = file1.listFiles();
			for (int i = 0; i < afile.length; i++) {
				if (afile[i].isFile()) {
					if (afile[i].exists())
						afile[i].delete();
					continue;
				}
				if (afile[i].isDirectory())
					delFolder(afile[i].toString(), delDir);
			}

			if (delDir)
				file1.delete();
		}

	}

	public static final void delFile(String s) {
		File file1 = new File(s);
		if (file1.exists()) {
			file1.delete();
		}

	}
	
	/**
	 * 屏蔽手机号码
	 * @param mobile
	 * @return
	 */
	public static String repMobile(String mobile) {
		String repMobile = "";
		if (null != mobile && !"".equals(mobile)) {
			if (11 == mobile.length()) {
				String h = mobile.substring(0, 3);
				String f = mobile.substring(7, 11);
				repMobile = h + "****" + f;
			} else {
				repMobile = mobile;
			}
		}
		return repMobile;
	}
	
//	public static void main(String[] args)
//    {
////	    String[] str = {"aa","bb","cc"};
////        Date rStrStart=StringUtil.getCurrentDate();
////        Date rStrEnd=StringUtil.addMonth(1,StringUtil.getCurrDate());
//        Float nub=StringUtil.floatRound1(444777);
//        System.out.println(nub);
//    }
}
  • 大小: 16.7 KB
  • 大小: 16.8 KB
  • 大小: 9.3 KB
1
2
分享到:
评论

相关推荐

    java常用util工具类

    在这个主题中,我们将深入探讨`StringUtil`、`FileUtil`、`MD5`、`JsonUtil`以及`ObjectUtil`这五个关键工具类的使用和功能。 首先,`StringUtil`通常是自定义或第三方库中用于处理字符串的工具类。它包含了对字符...

    C#常用工具类代码集合Util(自己工作总结)

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。"MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的...

    Java常用工具类UtilClass

    在给定的`UtilClass`中,我们有五个主要的工具类:`StringUtil`、`FileUtil`、`ConnectDB`、`DateUtil`和`TimeUtil`。这些类分别专注于字符串操作、文件处理、数据库连接、日期和时间管理。接下来,我们将详细探讨每...

    自己整理的C#常用工具类

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。这些工具类通常包含静态方法,不涉及实例化,直接通过类名调用,降低了代码冗余,提高了代码复用...

    java常用工具类的封装jar

    并且在平时开发中会遇到各种各样通用的一些功能,比如对json的处理,对String对象的处理,对Excel文件的处理,MD5加密处理,Bean对象处理等等,这些常用并通用的方法可以被封装成一个个工具类如StringUtil,...

    java常用工具类封装util.rar

    "java常用工具类封装util.rar"这个压缩包文件很可能包含了开发者为了提高代码复用性和简洁性而编写的各种实用工具类。下面将详细介绍一些Java开发中常见的工具类及其功能。 1. **字符串处理工具类(StringUtil)**:...

    常用工具类常用工具类.zip

    3. **Java.util.concurrent**: 针对多线程编程,此包提供了丰富的并发工具类,如`ExecutorService`、`Future`、`Semaphore`、`CountDownLatch`等。这些工具帮助开发者有效地管理和控制并发任务,提高程序性能。 4. ...

    Android常用工具类

    本篇文章将详细探讨Android开发中的几个常用工具类,包括LOG、Toast、SharedPreferences以及其他的实用工具类。 1. **LOG工具类**: 在Android开发中,日志(LOG)主要用于调试和追踪应用运行时的状态。自定义的...

    C#常用基础工具类源码

    整理了几个在DotNet2.0中C#开发常用的基础工具类,内容如下:StringUtil、ParseUtil、TypeUtil、ByteUtil、NumUtil、XmlUtil、RegexUtil、HashUtil、ColorUtil。

    淘淘商城07-工具类

    除了上述的几个主要类别,这个压缩包可能还包含了其他实用工具类,如日期时间处理(DateUtil)、字符串操作(StringUtil)、文件操作(FileUtil)、线程池管理(ThreadPoolUtil)等。这些工具类通常提供了静态方法...

    AS3-StringUtil

    《AS3-StringUtil:深入解析字符串处理工具类》 在ActionScript 3(AS3)中,处理字符串是一项常见的任务,而`StringUtil`类则是一个非常实用的工具,它提供了许多方便的方法来优化和简化字符串操作。这篇内容将...

    StringUtil.java

    吐血整理的常用工具类集合,特别的全 StringUtil.java。

    Android快速开发系列 10个常用工具类 程序源码

    本资源"Android快速开发系列 10个常用工具类 程序源码"提供了10个实用的工具类,旨在帮助开发者更快捷地完成日常开发工作。以下是对这些工具类的详细解释: 1. **StringUtil**: 字符串处理工具类,包括字符串格式化...

    java常用工具类

    "java常用工具类"这个主题涵盖了Java开发中常用的类和方法,这些工具类可以帮助我们简化编程工作,提高代码的可读性和可维护性。在Java中,`java.util`包就是这样一个包含大量工具类的包,提供了很多实用的功能。 1...

    Util工具类

    1. **Java.lang.StringUtil**:Java内置的字符串工具类,提供诸如字符串空判断、连接、分割、替换等常用功能。 2. **Java.util.DateUtil**:处理日期和时间的工具类,可以进行日期格式化、日期比较、日期计算等操作...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 `java.time` 包含日期和时间的操作,但DateUtils通常是Apache Commons Lang库中的一个工具类,提供更方便的日期处理...

    java 常用工具类

    在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面将详细讨论Java工具类中的关键知识点。 1. **集合框架**: `java.util`包下的集合框架是Java中处理数据结构的核心。它包括List(如...

Global site tag (gtag.js) - Google Analytics