package com.cheikh.lazywaimai.util;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.annotation.NonNull;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@SuppressLint("SimpleDateFormat")
public class StringUtil {
private static final String MAIL_REGEX = "([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})";
private static final String CELL_PHONE_REGEX = "(1)[0-9]{10}$";
/**
* 使用java正则表达式去掉多余的.与0
*
* @param value
* @return
*/
public static String friendlyMoney(float value) {
String s = String.valueOf(value);
if (s.indexOf(".") > 0) {
// 去掉多余的0
s = s.replaceAll("0+?$", "");
// 如最后一位是.则去掉
s = s.replaceAll("[.]$", "");
}
return s;
}
/**
* 使用java正则表达式判断是否是数字
*
* @param str
* @return
*/
public static boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
public static String formatMoney(double value) {
DecimalFormat format = new DecimalFormat("####.#");
format.setRoundingMode(RoundingMode.HALF_UP);
return "¥" + format.format(value);
}
public static String formatDiscount(float value) {
return new DecimalFormat("#.#").format(value * 10) + "折";
}
public static float formatInteger(double value) {
DecimalFormat format = new DecimalFormat("####");
format.setRoundingMode(RoundingMode.HALF_UP);
return Float.parseFloat(format.format(value));
}
/**
* 将金额格式化为整形
* @param value
* @return
*/
public static String formatIntegerMoney(double value) {
DecimalFormat format = new DecimalFormat("####");
format.setRoundingMode(RoundingMode.HALF_UP);
return "¥" + format.format(value);
}
/**
* 判断是否是邮箱
* @param email
* @return
*/
public static boolean isEmail(String email) {
if (isEmpty(email)) {
return false;
}
return Pattern.matches(MAIL_REGEX, email);
}
/**
* 判断是否是电话号码
* @param phone
* @return
*/
public static boolean isCellPhone(String phone) {
if (isEmpty(phone)) {
return false;
}
return Pattern.matches(CELL_PHONE_REGEX, phone);
}
/**
* 是否不为空
* @param str
* @return
*/
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
/**
* 是否为空
* @param str
* @return
*/
public static boolean isEmpty(String str) {
return str == null || "".equals(str.trim());
}
/**
* 移除字符串两侧的空白字符
* @param str
* @return
*/
public static String trim(String str) {
if ((str != null) && (str.length() != 0)) {
str = str.trim();
}
return str;
}
/**
* 将字符数组转化为字符串
* @param chars
* @return
*/
public static String charArray2String(char[] chars) {
StringBuilder sb = new StringBuilder();
for (char c : chars) {
sb.append(c);
}
return sb.toString();
}
/**
* 将byte数组转化为十六进制
* @param buffer
* @return
*/
public static String toHex(byte[] buffer) {
StringBuffer sb = new StringBuffer(buffer.length * 2);
for (int i = 0; i < buffer.length; ++i) {
sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 15, 16));
}
return sb.toString();
}
@SuppressWarnings("deprecation")
public static void copyToClipboard(Context context, String copyText) {
int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(copyText);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText("label", copyText);
clipboard.setPrimaryClip(clip);
}
}
/**
* 半角转换为全角
*
* @param input
* @return
*/
public static String stringToDBC(String input) {
char[] c = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 12288) {
c[i] = (char) 32;
continue;
}
if (c[i] > 65280 && c[i] < 65375) {
c[i] = (char) (c[i] - 65248);
}
}
return new String(c);
}
/**
* 将电话号码格式化为xxx-xxxx-xxxx格式
*
* @param input 原始电话号码
* @return 格式化的电话号码
*/
public static String formatPhoneNumber(@NonNull String input) {
if (input.length() <= 3) {
return input;
} else if (input.length() > 3 && input.length() < 7) {
return input.substring(0, 3) + "-"
+ input.substring(3, input.length());
} else if (input.length() >= 7) {
return input.substring(0, 3) + "-" + input.substring(3, 7) + "-"
+ input.substring(7, input.length());
}
return "";
}
/**
* 比较字符串A和B的大小(float比较,B必须大于0)
*
* @param str1 A
* @param str2 B
* @return true(A>=B), or false(A<B or B<=0)
*/
public static boolean compareA2B(String str1, String str2) {
try {
float s1 = Float.parseFloat(str1);
float s2 = Float.parseFloat(str2);
return s2 > 0 && s1 >= s2;
} catch (NumberFormatException e) {
return false;
}
}
}