StringUtil(视个人需要进行添加)
public class StringUtil {
public static boolean isMail(String string) {
if (null != string) {
if (string.matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")) {
return true;
}
}
return false;
}
/**
* 判断手机号码的正确性
*
* @param mobiles
* @return
*/
public static boolean isMobileNumber(String mobiles) {
if (null != mobiles) {
Pattern p = Pattern
.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
return m.matches();
}else {
return false;
}
}
/**
* 是否为 null 或者为空字符串
* @param string
* @return false if null || ""
*/
public static boolean isNotNull(String string) {
if (string == null || "".equals(string)) {
return false;
}else {
return true;
}
}
/**
* 判断字符串是否是整数
*/
public static boolean isInteger(String value) {
try {
Integer.parseInt(value);
return true;
} catch (NumberFormatException e) {
return false;
}
}
/**
* 字符串长度补齐,方便打印时对齐,美化打印页面,不过中文计算好像有点问题
*
* @param strs
* 源字符
* @param len
* 指定字符长度
* @return
* @throws UnsupportedEncodingException
*/
public static String Fix_String_Lenth(int type ,String strs, int len) {
String strtemp = strs;
int len1 = strs.length();
switch (type) {
case 0:
while (strtemp.length() < len*"我".length()) {
strtemp += " ";}
break;
case 1:
while (strtemp.length() < len) {
strtemp += " ";}
break;
default:
break;
}
return strtemp;
}
}
ImageUtil
public class ImageUtil
{
public static byte[] getimage(String path) throws Exception
{
URL url = new URL(path);// 设置URL
HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 打开链接
conn.setRequestMethod("GET");// 设置链接方式
conn.setConnectTimeout(5 * 1000);// 设置链接超时
InputStream inStream = conn.getInputStream();// 得到输入泿
byte[] data = readinputStream(inStream);
return data;
}
public static byte[] readinputStream(InputStream inputStream)
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int lns = 0;
try {
while ((lns = inputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, lns);
}
} catch (IOException e) {
e.printStackTrace();
}
return outputStream.toByteArray();
}
public static Bitmap getBitmapFromBase64String(String imageString)
{
// 对字节数组字符串进行Base64解码并生成图燿
if (imageString == null) // 图像数据为空
return null;
byte[] data = Base64.decode(imageString, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(data, 0, data.length);
}
public static String getBitmapString(String image)
{
Bitmap bitmap = BitmapFactory.decodeFile(image);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] data = baos.toByteArray();
return Base64.encodeToString(data, Base64.DEFAULT);// 返回Base64编码过的字节数组字符
}
public static String getBase64StringFromFile(String imageFile)
{
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try
{
in = new FileInputStream(imageFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
// 对字节数组Base64编码
return Base64.encodeToString(data, Base64.DEFAULT);// 返回Base64编码过的字节数组字符
}
/**
* drawable -> Bitmap
* @param drawable
* @return
*/
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
//canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
/**
* resource - > Bitmap
* @param context
* @param resId
* @return
*/
public static Bitmap resourceToBitmap(Context context ,int resId){
Resources res = context.getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, resId);
return bitmap;
}
/**
* Bitmap - > Bytes
* @param bm
* @return
*/
public static byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
/**
* Bytes - > Bitmap
* @param b
* @return
*/
public static Bitmap Bytes2Bitmap(byte[] b){
if(b.length!=0){
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
else {
return null;
}
}
/**
* bitmap -> Base64
* @param bitmap
* @return
*/
public static String bitmapToBase64(Bitmap bitmap) {
String result = null;
ByteArrayOutputStream baos = null;
try {
if (bitmap != null) {
baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
baos.flush();
baos.close();
byte[] bitmapBytes = baos.toByteArray();
result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.flush();
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
//获取图片
public static Bitmap getimage(ContentResolver cr, Uri uri, int screeWidth,int screeHeight) {
try {
Bitmap bitmap = null;
BitmapFactory.Options newOpts = new BitmapFactory.Options();
// options.inJustDecodeBounds=true,图片不加载到内存中
newOpts.inJustDecodeBounds = true;
BitmapFactory.decodeStream(cr.openInputStream(uri), null, newOpts);
newOpts.inJustDecodeBounds = false;
int imgWidth = newOpts.outWidth;
int imgHeight = newOpts.outHeight;
// 缩放比,1表示不缩放
int scale = 1;
if (imgWidth > imgHeight && imgWidth > screeWidth) {
scale = (int) (imgWidth / screeWidth);
} else if (imgHeight > imgWidth && imgHeight > screeHeight) {
scale = (int) (imgHeight / screeHeight);
}
newOpts.inSampleSize = scale;// 设置缩放比例
bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri), null,newOpts);
return bitmap;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
DateUtil
public class DateUtil {
public final static String yyyy = "yyyy";
public final static String MM_dd = "MM-dd";
public final static String dd = "dd";
public final static String yyyy_MM_dd = "yyyy-MM-dd";
public final static String yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm";
public final static String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";
public final static String yyyy_MM_dd_HH_mm_ss_SSS = "yyyy-MM-dd HH:mm:ss SSS";
public final static String MM_dd_HH_mm_ss = "MM-dd HH:mm:ss";
public final static String yyyy_MM_dd_HH_mm_local = "yyyy年MM月dd日 HH:mm";
/**
* 返回当天日期的字符串,可以自己定格式,格式如上
* @param pattern
* @return
*/
public static String now(String pattern) {
SimpleDateFormat df = new SimpleDateFormat(pattern);
return df.format(Calendar.getInstance().getTime());
}
public static String now_yyyy() {
return now(yyyy);
}
public static String now_MM_dd() {
return now(MM_dd);
}
public static String now_dd() {
return now(dd);
}
public static String now_yyyy_MM_dd() {
return now(yyyy_MM_dd);
}
public static String now_yyyy_MM_dd_HH_mm_ss() {
return now(yyyy_MM_dd_HH_mm_ss);
}
public static String now_yyyy_MM_dd_HH_mm_ss_SSS() {
return now(yyyy_MM_dd_HH_mm_ss_SSS);
}
public static String now_MM_dd_HH_mm_ss() {
return now(MM_dd_HH_mm_ss);
}
/**
* 获得年龄
* @param birth
* @return
*/
public static String getAge(String birth) { // 传进来的格式一定要对应1991-05-25
if ("".equals(birth))
return "";
int nowAge = 0;
Date date = strToDateCN_yyyy_MM_dd(birth);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int birth_year = calendar.get(Calendar.YEAR);
int birth_month = calendar.get(Calendar.MONTH);
int birth_day = calendar.get(Calendar.DAY_OF_MONTH);
calendar.setTime(new Date());
int now_year = calendar.get(Calendar.YEAR);
int now_month = calendar.get(Calendar.MONTH);
int now_day = calendar.get(Calendar.DAY_OF_MONTH);
nowAge = now_year - birth_year;
if (now_month < birth_month) {
nowAge--;
} else if (now_month == birth_month && now_day < birth_day) {
nowAge--;
}
if (nowAge < 0)
nowAge = 0;
return "" + nowAge;
}
public static String getStauts(String stime,String rtime){
if(stime == null || rtime == null)
return "";
String status = "";
try {
Date sDate = strToDateLoc_yyyy_MM_dd_HH_mm(stime);
Date rDate = strToDateLoc_yyyy_MM_dd_HH_mm(rtime);
Date nDate = new Date();
if(nDate.getTime() < sDate.getTime())
status = "准备中";
else if(nDate.getTime() > rDate.getTime()){
status = "已结束";
}
else
status = "进行中";
} catch (Exception e) {
e.printStackTrace();
status = "";
}
return status;
}
/**
* 聊天显示
* @param timeString
* @return 三小时前、昨天等
*/
private static String getRecentTime(String timeString,Date date) {
if(timeString == null || "".equals(timeString))
return "";
StringBuilder cn_string = new StringBuilder();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int day = calendar.get(Calendar.DAY_OF_YEAR); //月份中的日
int week = calendar.get(Calendar.WEEK_OF_YEAR); //年中周
int hour = calendar.get(Calendar.HOUR_OF_DAY); //时间
int month = calendar.get(Calendar.MONTH)+1; //月份.显示用
int day_of_week = calendar.get(Calendar.DAY_OF_WEEK)-1; //周中的日.显示用
if(day_of_week == 0) day_of_week = 7;
int minute = calendar.get(Calendar.MINUTE); //分钟.显示用
Calendar nowCalendar = Calendar.getInstance();
nowCalendar.setTime(new Date());
int now_day = nowCalendar.get(Calendar.DAY_OF_YEAR);
int now_week = nowCalendar.get(Calendar.WEEK_OF_YEAR);
int now_hour = nowCalendar.get(Calendar.HOUR_OF_DAY);
//时间字符串
StringBuilder hoursString = new StringBuilder(""+hour);
StringBuilder minutesString = new StringBuilder(""+minute);
if(hour<10)
hoursString.insert(0, "0");
if(minute<10)
minutesString.insert(0, "0");
if(day == now_day && hour == now_hour){
cn_string.append("刚刚");
}
else if((now_day - day >=0) &&(now_day - day < 1) && (now_hour - hour < 24) && (now_hour - hour >0)){
cn_string.append(now_hour-hour).append("小时前");
}
else if(now_day == day){
cn_string.append("今天").append(hoursString).append(":").append(minutesString);
}
else if(now_day - day == 1)
cn_string.append("昨天").append(hoursString).append(":").append(minutesString);
else if(now_day - day == 2)
cn_string.append("前天").append(hoursString).append(":").append(minutesString);
else if(day - now_day == 1)
cn_string.append("明天").append(hoursString).append(":").append(minutesString);
else if(day - now_day == 2)
cn_string.append("后天").append(hoursString).append(":").append(minutesString);
else if((week == now_week && day>now_day ) || (week - now_week == 1 && day_of_week == 7))
cn_string.append("周").append(numToUpper(day_of_week)).append(" ").append(hoursString).append(":").append(minutesString);
else if(week - now_week ==1)
cn_string.append("下周").append(numToUpper(day_of_week)).append(" ").append(hoursString).append(":").append(minutesString);
else{ //直接显示
StringBuilder monthString = new StringBuilder(""+month);
int _day = calendar.get(Calendar.DAY_OF_MONTH); //月份中的日
StringBuilder dayString = new StringBuilder(""+_day);
if(month <10)
monthString.insert(0, "0");
if(_day<10)
dayString.insert(0, "0");
cn_string.append(monthString).append("月").append(dayString).append("日").append(hoursString).append(":").append(minutesString);
}
return cn_string.toString();
}
/**
* 02-01 12:11:56
* @param timeString
* @return
*/
public static String getRecentTimeMM_dd_ss(String timeString){
Date date = strToDateMM_dd_ss(timeString);
return getRecentTime(timeString, date);
}
/**
* 2012年01月03日 12:55
* @param timeString
* @return
*/
public static String getRecentTimeyyyy_MM_dd(String timeString){
Date date = strToDateLoc_yyyy_MM_dd_HH_mm(timeString);
return getRecentTime(timeString, date);
}
/**
* 2012-01-03 12:55:12
* @param timeString
* @return
*/
public static String getRecentTimeCN_yyyy_MM_dd_HH_mm_ss(String timeString) {
Date date = strToDateCN_yyyy_MM_dd_HH_mm_ss(timeString);
return getRecentTime(timeString, date);
}
/**
* 是否超过三天,判断是否能上传图片
* @param runtime
* @return
*/
public static boolean isOver3Day(String runtime){
boolean is = false;
Date runDate = strToDateLoc_yyyy_MM_dd_HH_mm(runtime);
Date now = new Date();
if((now.getTime() - runDate.getTime()) > (3*24*60*60*1000)){
is = true;
}
return is;
}
public static String getHi(){
int nowHour = new Date().getHours();
if(nowHour>=0 && nowHour <6){
return "凌晨好!";
}
else if(nowHour>=6 && nowHour<12){
return "上午好!";
}
else if(nowHour>=12 && nowHour<18){
return "下午好!";
}
else{
return "晚上好!";
}
}
public static final String[] zodiacArr = { "猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊" };
public static final String[] constellationArr = { "水瓶座", "双鱼座", "牡羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座",
"天蝎座", "射手座", "魔羯座" };
public static final int[] constellationEdgeDay = { 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22 };
/**
* 根据日期获取生肖
* @return
*/
public static String date2Zodica(String birth) {
if ("".equals(birth))
return "";
return zodiacArr[Integer.valueOf(birth.split("-")[0]) % 12];
}
/**
* 根据日期获取星座
* @param time
* @return
*/
public static String date2Constellation(String birth) { // 传进来的格式一定要对应1991-05-25
Date date = strToDateCN_yyyy_MM_dd(birth);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
if (day < constellationEdgeDay[month]) {
month = month - 1;
}
if (month >= 0) {
return constellationArr[month];
}
//default to return 魔羯
return constellationArr[11];
}
/**
*
* @param dateString
* yyyy年MM月dd日 HH:mm
* @return like: 明天 15:00
*/
public static String ch_time(String dateString) {
// System.out.println("pppppt-->"+dateString);
String cn_string = null;
Date date = DateUtil.strToDate(dateString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
String hString,mString;
if (hour < 10) {
hString = "0" + hour;
}else {
hString = ""+hour;
}
if (minute < 10) {
mString = "0"+minute;
}else {
mString = ""+minute;
}
String time = hString+":"+mString;
hString = null;
mString = null;
//去掉日以下的时间
calendar.clear(Calendar.HOUR_OF_DAY);
calendar.clear(Calendar.HOUR);
calendar.clear(Calendar.MINUTE);
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MILLISECOND);
Calendar nowCalendar = Calendar.getInstance();
nowCalendar.clear(Calendar.HOUR_OF_DAY);
nowCalendar.clear(Calendar.HOUR);
nowCalendar.clear(Calendar.MINUTE);
nowCalendar.clear(Calendar.SECOND);
nowCalendar.clear(Calendar.MILLISECOND);
long flag = (calendar.getTimeInMillis() - nowCalendar.getTimeInMillis()
) / (1000 * 60 * 60 * 24);
// System.out.println("ppssss->" + flag);
if (flag == 0) {
cn_string = "今天 " + time;
} else if (flag == 1) {
cn_string = "明天 " + time;
} else if (flag == 2) {
cn_string = "后天 " + time;
} else if (flag <= getDatePlus() + 7 && flag > 0) {
if (!getNextWeekDate(calendar).equals("")) {
cn_string = getNextWeekDate(calendar) + time;
} else {
cn_string = dateString;
}
} else {
cn_string = dateString;
}
time = null;
return cn_string;
}
/**
*
* @param date
* @param pattern
* @return
*/
public static String dateToStr(Date date, String pattern) {
if(date == null)
return "";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 将日期时间型转成字符串 如:" 2002-07-01 11:40:02"
*
* @param inDate
* 日期时间 " 2002-07-01 11:40:02"
* @return String 转换后日期时间字符串
*/
public static String dateToStr_yyyy_MM_dd_HH_mm_ss(Date date) {
return dateToStr(date, yyyy_MM_dd_HH_mm_ss);
}
/**
* 将日期时间型转成字符串 如:" 2002-07-01 11:40:02"
*
* @param inDate
* 日期时间 " 2002-07-01 11:40:02"
* @return String 转换后日期时间字符串
*/
public static String dateToStr_yyyy_MM_dd_HH_mm(Date date) {
return dateToStr(date, yyyy_MM_dd_HH_mm);
}
/**
* yyyy年MM月dd日 HH:mm
*
* @param date
* @return
*/
public static String dateToStrLocal(Date date) {
return dateToStr(date, yyyy_MM_dd_HH_mm_local);
}
/**
* 将日期时间型转成字符串 如:" 2002-07-01 11:40:02"
*
* @param inDate
* 日期时间 " 2002-07-01 11:40:02"
* @return String 转换后日期时间字符串
*/
public static String dateToStr_MM_dd_HH_mm_ss(Date date) {
return dateToStr(date, MM_dd_HH_mm_ss);
}
/**
* 将日期型转成字符串 如:"2002-07-01"
*
* @param inDate
* 日期 "2002-07-01"
* @return String 转换后日期字符串
*/
public static String dateToStr_yyyy_MM_dd(Date date) {
return dateToStr(date, yyyy_MM_dd);
}
/**
* 将字符串型(英文格式)转成日期型 如: "Tue Dec 26 14:45:20 CST 2000"
*
* @param DateFormatStr
* 字符串 "Tue Dec 26 14:45:20 CST 2000"
* @return Date 日期
*/
public static Date strToDateEN(String shorDateStr) {
Date date = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat(
"EEE MMM dd hh:mm:ss 'CST' yyyy", java.util.Locale.US);
return sdf.parse(shorDateStr);
} catch (Exception e) {
return new Date();
}
}
/**
* 将字符串型(中文格式)转成日期型 如:"2002-07-01 22:09:55"
*
* @param datestr
* 字符串 "2002-07-01 22:09:55"
* @return Date 日期
*/
public static Date strToDateCN_yyyy_MM_dd_HH_mm_ss(String datestr) {
Date date = null;
try {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = fmt.parse(datestr);
} catch (Exception e) {
return date;
}
return date;
}
/**
* 将字符串型(中文格式)转成日期型 如:"2002-07-01 22:09"
*
* @param datestr
* 字符串 "2002-07-01 22:09"
* @return Date 日期
*/
public static Date strToDateCN_yyyy_MM_dd_HH_mm(String datestr) {
Date date = null;
try {
SimpleDateFormat fmt = new SimpleDateFormat(yyyy_MM_dd_HH_mm);
date = fmt.parse(datestr);
} catch (Exception e) {
return date;
}
return date;
}
/**yyyy_MM_dd_HH_mm
* @param datestr
* @return
*/
public static Date strToDateLoc_yyyy_MM_dd_HH_mm(String datestr) {
Date date = null;
try {
SimpleDateFormat fmt = new SimpleDateFormat(yyyy_MM_dd_HH_mm_local);
date = fmt.parse(datestr);
} catch (Exception e) {
return date;
}
return date;
}
/**MM-dd HH:mm
* @param datestr
* @return
*/
public static Date strToDateMM_dd_ss(String datestr) {
Date date = null;
try {
SimpleDateFormat fmt = new SimpleDateFormat(MM_dd_HH_mm_ss);
date = fmt.parse(datestr);
} catch (Exception e) {
return date;
}
return date;
}
/**
*
* @param datestr
* @return
*/
public static Date strToDateCN_yyyy_MM_dd(String datestr) {
Date date = null;
try {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
date = fmt.parse(datestr);
} catch (Exception e) {
return date;
}
return date;
}
/**
*
* @param datestr
* yyyy年MM月dd日 HH:mm
* @return
*/
public static Date strToDate(String datestr) {
Date date = null;
try {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
date = fmt.parse(datestr);
} catch (Exception e) {
return date;
}
return date;
}
/**
* 转换util.date-->sql.date
*
* @param inDate
* @return
*/
public static java.sql.Date UtilDateToSqlDate(Date inDate) {
return new java.sql.Date(getDateTime(inDate));
}
private static long getDateTime(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DATE);
cal.set(year, month, day, 0, 0, 0);
long result = cal.getTimeInMillis();
result = result / 1000 * 1000;
return result;
}
/**
* 遍历刚从数据库里查出来的Map,将里面Timestamp格式化成指定的pattern
*
* @param target
* 目标map,就是一般是刚从数据库里查出来的
* @param pattern
* 格式化规则,从自身取
*/
@Deprecated
public static void formatMapDate(Map target, String pattern) {
for (Object item : target.entrySet()) {
Map.Entry entry = (Map.Entry) item;
if (entry.getValue() instanceof Timestamp) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
entry.setValue(sdf.format((Timestamp) entry.getValue()));
}
}
}
/**
* 日期转化为大小写 chenjiandong 20090609 add
*
* @param date
* @param type
* 1;2两种样式1为简体中文,2为繁体中文
* @return
*/
public static String dataToUpper(Date date, int type) {
Calendar ca = Calendar.getInstance();
ca.setTime(date);
int year = ca.get(Calendar.YEAR);
int month = ca.get(Calendar.MONTH) + 1;
int day = ca.get(Calendar.DAY_OF_MONTH);
return numToUpper(year, type) + "年" + monthToUppder(month, type) + "月"
+ dayToUppder(day, type) + "日";
}
/**
* 将数字转化为大写
*
* @param num
* @param type
* @return
*/
public static String numToUpper(int num, int type) {// type为样式1;2
String u1[] = { "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
String u2[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
char[] str = String.valueOf(num).toCharArray();
String rstr = "";
if (type == 1) {
for (int i = 0; i < str.length; i++) {
rstr = rstr + u1[Integer.parseInt(str[i] + "")];
}
} else if (type == 2) {
for (int i = 0; i < str.length; i++) {
rstr = rstr + u2[Integer.parseInt(str[i] + "")];
}
}
return rstr;
}
/**
* 将数字转化为大写
*
* @param num
* @return
*/
public static String numToUpper(int num) {
String u1[] = { "〇", "一", "二", "三", "四", "五", "六", "日"};
char[] str = String.valueOf(num).toCharArray();
String rstr = "";
for (int i = 0; i < str.length; i++) {
rstr = rstr + u1[Integer.parseInt(str[i] + "")];
}
return rstr;
}
/**
* 月转化为大写
*
* @param month
* @param type
* @return
*/
public static String monthToUppder(int month, int type) {
if (month < 10) {
return numToUpper(month, type);
} else if (month == 10) {
return "十";
} else {
return "十" + numToUpper((month - 10), type);
}
}
/**
* 日转化为大写
*
* @param day
* @param type
* @return
*/
public static String dayToUppder(int day, int type) {
if (day < 20) {
return monthToUppder(day, type);
} else {
char[] str = String.valueOf(day).toCharArray();
if (str[1] == '0') {
return numToUpper(Integer.parseInt(str[0] + ""), type) + "十";
} else {
return numToUpper(Integer.parseInt(str[0] + ""), type) + "十"
+ numToUpper(Integer.parseInt(str[1] + ""), type);
}
}
}
/**
* 获得当前日期与本周日相差的天数(视星期日为一周最后一天)
*
* @return
*/
public static int getDatePlus() {
Calendar cd = Calendar.getInstance();
// 获得今天是一周的第几天,星期日是第一天,星期一是第二天......
int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == 1) {
return 0;
} else {
return 8 - dayOfWeek;
}
}
/**
*
* @param calendar
* @return
*/
public static String getNextWeekDate(Calendar calendar) {
String date = "";
switch (calendar.get(Calendar.DAY_OF_WEEK)) {
case 1:
date = "下周日 ";
break;
case 2:
date = "下周一 ";
break;
case 3:
date = "下周二 ";
break;
case 4:
date = "下周三 ";
break;
case 5:
date = "下周四 ";
break;
case 6:
date = "下周五 ";
break;
case 7:
date = "下周六 ";
break;
default:
break;
}
return date;
}
public static boolean isToday(String datesString){
boolean isToday = false;
Date date = strToDateCN_yyyy_MM_dd_HH_mm(datesString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int day = calendar.get(Calendar.DAY_OF_YEAR);
Calendar nowCalendar = Calendar.getInstance();
int nowDay = nowCalendar.get(Calendar.DAY_OF_YEAR);
if (nowDay == day) {
isToday = true;
}
return isToday;
}
}
FileUtil
public class FileUtil {
public final static int IMG = 0;
public final static int SOUND = 1;
public final static int APK = 2;
public final static int PPT = 3;
public final static int XLS = 4;
public final static int DOC = 5;
public final static int PDF = 6;
public final static int CHM = 7;
public final static int TXT = 8;
public final static int MOVIE = 9;
public static String getBase64StringFromFile(String imageFile)
{
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try
{
in = new FileInputStream(imageFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
// 对字节数组Base64编码
return Base64.encodeToString(data, Base64.DEFAULT);// 返回Base64编码过的字节数组字符
}
/**
* @param fileString base64
* @param filePath 保存路径,包括名字
* @return
*/
public static boolean saveFileByBase64(String fileString, String filePath) {
// 对字节数组字符串进行Base64解码并生成图燿
if (fileString == null) // 图像数据为空
return false;
byte[] data = Base64.decode(fileString, Base64.DEFAULT);
saveFileByBytes(data, filePath);
return true;
}
/**
* @param bitmap bitmap
* @param filePath 保存路径,包括名字
* @return
*/
public static boolean saveFileByBitmap(Bitmap bitmap, String filePath) {
// 对字节数组字符串进行Base64解码并生成图燿
if (bitmap == null) // 图像数据为空
return false;
byte[] data = ImageUtil.Bitmap2Bytes(bitmap);
saveFileByBytes(data, filePath);
return true;
}
/**
* @param fileString bytes[]
* @param filePath 保存路径,包括名字
* @return
*/
public static boolean saveFileByBytes(byte[] data,String filePath) {
// 对字节数组字符串进行Base64解码并生成图燿
BufferedOutputStream stream = null;
File file = null;
try {
file = new File(filePath);
if (!file.exists()) {
File file2 = new File(filePath.substring(0, filePath.lastIndexOf("/")+1));
file2.mkdirs();
}
FileOutputStream fstream = new FileOutputStream(file);
stream = new BufferedOutputStream(fstream);
stream.write(data);
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
return true;
}
/**
* imputStream 返回out
* @param inputStream
* @return
* @throws Exception
*/
public static boolean saveFileByInputStream(InputStream inputStream,
String filePath) {
File file = null;
file = new File(filePath);
if (!file.exists()) {
File file2 = new File(filePath.substring(0,
filePath.lastIndexOf("/") + 1));
file2.mkdirs();
}
FileOutputStream outputStream = null;
BufferedOutputStream bos = null;
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(inputStream);
outputStream = new FileOutputStream(file);
bos = new BufferedOutputStream(outputStream);
int byte_ =0 ;
while ((byte_ = bis.read()) != -1)
bos.write(byte_);
} catch (IOException e) {
e.printStackTrace();
return false;
} finally{
try {
bos.flush();
bos.close();
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
/**
* 根据url得到名称
* @param url
* @return
*/
public static String getFileName(String url) {
String fileName = "";
if (url != null) {
fileName = url.substring(url.lastIndexOf("/") + 1);
}
return fileName;
}
public static boolean renameFile(String path,String oldName,String newName){
try {
File file = null;
file = new File(path + "/" + oldName);
if (file.exists()) {
file.renameTo(new File(path + "/" + newName));
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* 辅助方法,删除文件
* @param path
* @param context
* @param imageName
*/
private void delFile(String path, Context context,
String imageName) {
File file = null;
String real_path = "";
try {
if (hasSDCard()) {
real_path = (path != null && path.startsWith("/") ? path : "/"
+ path);
} else {
real_path = getPackagePath(context)
+ (path != null && path.startsWith("/") ? path : "/"
+ path);
}
file = new File(real_path, imageName);
if (file != null)
file.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据路径和名称都可以
* @param filePath
* @return
*/
public static int getType(String filePath){
if (filePath == null) {
return -1;
}
String end ;
if(filePath.contains("/")){
File file = new File(filePath);
if (!file.exists())
return -1;
/* 取得扩展名 */
end = file
.getName()
.substring(file.getName().lastIndexOf(".") + 1,
file.getName().length()).toLowerCase();
}else{
end = filePath.substring(filePath.lastIndexOf(".") + 1,
filePath.length()).toLowerCase();;
}
end = end.trim().toLowerCase();
if (end.equals("m4a") || end.equals("mp3") || end.equals("mid")
|| end.equals("xmf") || end.equals("ogg") || end.equals("wav")
|| end.equals("amr")) {
return SOUND;
} else if (end.equals("3gp") || end.equals("mp4")) {
return MOVIE;
} else if (end.equals("jpg") || end.equals("gif") || end.equals("png")
|| end.equals("jpeg") || end.equals("bmp")) {
return IMG;
} else if (end.equals("apk")) {
return APK;
} else if (end.equals("ppt")) {
return PPT;
} else if (end.equals("xls")) {
return XLS;
} else if (end.equals("doc")) {
return DOC;
} else if (end.equals("pdf")) {
return PDF;
} else if (end.equals("chm")) {
return CHM;
} else if (end.equals("txt")) {
return TXT;
} else {
return -1;
}
}
public static Intent openFile(String filePath) {
if (filePath == null) {
return null;
}
File file = new File(filePath);
if (!file.exists())
return null;
/* 取得扩展名 */
String end = file
.getName()
.substring(file.getName().lastIndexOf(".") + 1,
file.getName().length()).toLowerCase();
end = end.trim().toLowerCase();
// System.out.println(end);
/* 依扩展名的类型决定MimeType */
if (end.equals("m4a") || end.equals("mp3") || end.equals("mid")
|| end.equals("xmf") || end.equals("ogg") || end.equals("wav")
|| end.equals("amr")) {
return getAudioFileIntent(filePath);
} else if (end.equals("3gp") || end.equals("mp4")) {
return getAudioFileIntent(filePath);
} else if (end.equals("jpg") || end.equals("gif") || end.equals("png")
|| end.equals("jpeg") || end.equals("bmp")) {
return getImageFileIntent(filePath);
} else if (end.equals("apk")) {
return getApkFileIntent(filePath);
} else if (end.equals("ppt")) {
return getPptFileIntent(filePath);
} else if (end.equals("xls")) {
return getExcelFileIntent(filePath);
} else if (end.equals("doc")) {
return getWordFileIntent(filePath);
} else if (end.equals("pdf")) {
return getPdfFileIntent(filePath);
} else if (end.equals("chm")) {
return getChmFileIntent(filePath);
} else if (end.equals("txt")) {
return getTextFileIntent(filePath, false);
} else {
return getAllIntent(filePath);
}
}
// Android获取一个用于打开APK文件的intent
public static Intent getAllIntent(String param) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "*/*");
return intent;
}
// Android获取一个用于打开APK文件的intent
public static Intent getApkFileIntent(String param) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
return intent;
}
// Android获取一个用于打开VIDEO文件的intent
public static Intent getVideoFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "video/*");
return intent;
}
// Android获取一个用于打开AUDIO文件的intent
public static Intent getAudioFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "audio/*");
return intent;
}
// Android获取一个用于打开Html文件的intent
public static Intent getHtmlFileIntent(String param) {
Uri uri = Uri.parse(param).buildUpon()
.encodedAuthority("com.android.htmlfileprovider")
.scheme("content").encodedPath(param).build();
Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(uri, "text/html");
return intent;
}
// Android获取一个用于打开图片文件的intent
public static Intent getImageFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "image/*");
return intent;
}
// Android获取一个用于打开PPT文件的intent
public static Intent getPptFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
return intent;
}
// Android获取一个用于打开Excel文件的intent
public static Intent getExcelFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "application/vnd.ms-excel");
return intent;
}
// Android获取一个用于打开Word文件的intent
public static Intent getWordFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "application/msword");
return intent;
}
// Android获取一个用于打开CHM文件的intent
public static Intent getChmFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "application/x-chm");
return intent;
}
// Android获取一个用于打开文本文件的intent
public static Intent getTextFileIntent(String param, boolean paramBoolean) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (paramBoolean) {
Uri uri1 = Uri.parse(param);
intent.setDataAndType(uri1, "text/plain");
} else {
Uri uri2 = Uri.fromFile(new File(param));
intent.setDataAndType(uri2, "text/plain");
}
return intent;
}
// Android获取一个用于打开PDF文件的intent
public static Intent getPdfFileIntent(String param) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri, "application/pdf");
return intent;
}
/**
* 判断是否有sdcard
*
* @return
*/
public static boolean hasSDCard() {
boolean b = false;
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
b = true;
}
return b;
}
/**
* 得到sdcard路径
*
* @return
*/
public static String getExtPath() {
String path = "";
if (hasSDCard()) {
path = Environment.getExternalStorageDirectory().getPath();
}
return path;
}
/**
* 得到/data/data/com.d3studio.together目录
*
* @param mActivity
* @return
*/
public static String getPackagePath(Context mActivity) {
return mActivity.getFilesDir().toString();
}
/**
* 根据url得到图片
*
* @param url
* @return
*/
public static String getImageName(String url) {
String imageName = "";
if (url != null) {
imageName = url.substring(url.lastIndexOf("/") + 1);
}
return imageName;
}
}
InputTools
public class InputTools {
// 隐藏虚拟键盘
public static void HideKeyboard(View v) {
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
}
}
// 显示虚拟键盘
public static void ShowKeyboard(View v) {
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(v, InputMethodManager.SHOW_FORCED);
}
// 强制显示或者关闭系统键盘
public static void KeyBoard(final EditText txtSearchKey, final String status) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
InputMethodManager m = (InputMethodManager) txtSearchKey.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (status.equals("open")) {
m.showSoftInput(txtSearchKey,InputMethodManager.SHOW_FORCED);
} else {
m.hideSoftInputFromWindow(txtSearchKey.getWindowToken(), 0);
}
}
}, 300);
}
// 通过定时器强制隐藏虚拟键盘
public static void TimerHideKeyboard(final View v) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.hideSoftInputFromWindow(v.getApplicationWindowToken(),0);
}
}
}, 10);
}
// 输入法是否显示着
public static boolean KeyBoard(EditText edittext) {
boolean bool = false;
InputMethodManager imm = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
bool = true;
}
return bool;
}
}