package com.sjl.yuehu.util;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.widget.EditText;
import android.widget.TextView;
import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by simon on 2016/3/15.
*/
public class StringUtil {
public static boolean isEmpty(String str) {
if (str == null) return true;
if (str.trim().equals("")) return true;
return false;
}
public static boolean isEmpty(EditText et) {
return isEmpty(getText(et));
}
public static boolean isEmpty(TextView tv) {
return isEmpty(getText(tv));
}
public static String getText(EditText editText) {
if (editText == null) return "";
return editText.getText().toString();
}
// public static String getText(SwitchButton switchButton) {
// return switchButton.isChecked() ? "1" : "0";
// }
public static String getText(TextView textView) {
if (textView == null) return null;
return textView.getText().toString();
}
public static String getSecurityMobile(String mobile) {
if (isEmpty(mobile)) return null;
int length = mobile.length();
if (length == 11) {
String begin = mobile.substring(0, 3);
String end = mobile.substring(8);
return begin + "*****" + end;
} else
return mobile;
}
public static String groupMobile(String mobile) {
if (isEmpty(mobile)) return null;
char[] arr = mobile.toCharArray();
StringBuilder sb_mobile = new StringBuilder();
if (arr.length == 11) {
sb_mobile.append(arr[0]).append(arr[1]).append(arr[2]);
sb_mobile.append(" ").append(arr[3]).append(arr[4]).append(arr[5]).append(arr[6]);
sb_mobile.append(" ").append(arr[7]).append(arr[8]).append(arr[9]).append(arr[10]);
return sb_mobile.toString();
}
return mobile;
}
public static String getValue(String string) {
return getValue(string, "");
}
public static String getValue(String string, String defaultVal) {
return isEmpty(string) ? defaultVal : string;
}
public static String getMoney(String string) {
return formatPrice(getValue(string, "0.00"));
}
public static double getFloatVal(String string) {
return Double.parseDouble(getValue(string, "0"));
}
public static String getInt(String string) {
return getValue(string, "0");
}
public static int getIntVal(String string) {
return Integer.parseInt(getValue(string, "0"));
}
public static String formatPrice(String price) {
return formatPrice(Double.parseDouble(price), 2);
}
public static String formatPrice(double price) {
return formatPrice(price, 2);
}
public static String formatPrice(double price, int scale) {
BigDecimal bigDecimal = new BigDecimal(price).setScale(scale, BigDecimal.ROUND_HALF_UP);
return bigDecimal.toPlainString();
}
public static String Date2String() {
return String.valueOf(System.currentTimeMillis());
}
/**
* 手机号是否合法
* 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
* 联通:130、131、132、152、155、156、185、186
* 电信:133、153、180、189、(1349卫通)
* 其他: 177,178,179
* 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
*/
public static boolean isMobile(String mobile) {
if (StringUtil.isEmpty(mobile))
return false;
String telRegex = "[1][3578]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
if (isEmpty(mobile))
return false;
else
return mobile.matches(telRegex);
}
/**
* 邮箱是否合法
*
* @param email
* @return
*/
public static boolean isEmail(String email) {
if (StringUtil.isEmpty(email))
return false;
//Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}"); //简单匹配
Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");//复杂匹配
Matcher m = p.matcher(email);
return m.matches();
}
/**
* 判断是数字
*
* @param str
* @return
*/
public static boolean isNumeric(String str) {
if (isEmpty(str))
return false;
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
public static void copy(Context context, String content) {
ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", content);
clipboardManager.setPrimaryClip(clipData);
}
public static double sum(String... floats) {
BigDecimal decimal = new BigDecimal(0);
for (String f : floats) {
decimal = decimal.add(new BigDecimal(String.valueOf(f)));
}
return decimal.doubleValue();
}
}