android字符串工具类,一个安卓开发中常用的字符串工具类

本文分享了一个Java工具类,包含多种常见的字符串处理和验证方法,如密码强度检查、数字和字母判断、手机号和邮政编码验证等。代码清晰,注释详细,方便直接在项目中使用。

实在是不好意思 在上次写了那进度条的动画之后,本来预计该发一篇结合进度条的小视频录制的功能,结果发现还是有一些坑没有填完,为了避免误导大家,所以就先写这一篇吧因为前段时间家中老人去世再加上项目即将上线,所以一直忙的没有空来更新,才拖到了国庆,今天给大家分享一个工具类,里面包含了各种常用的类,例如判断密码是否是纯数字,字母,是否是6-18位等各种常用的判断,这里就直接提供给大家,可以直接拿去使用下面就上代码

public class StringUtils {

private StringUtils() {

throw new AssertionError();

}

/**

* 密码

*

* @param pwd

* @return

*/

public static boolean isPwd(String pwd) {

int length = pwd.length();

boolean falg = false;

if (length >= 6 && length <= 16) {

falg = true;

} else {

falg = false;

}

return falg;

}

/**

* 纯数字

*

* @param str

* @return

*/

public static boolean isNumeric(String str) {

for (int i = str.length(); --i >= 0; ) {

if (!Character.isDigit(str.charAt(i))) {

return false;

}

}

return true;

}

/**

* 纯字母

*

* @param

* @return

*/

public static boolean isChar(String data) {

boolean flag = false;

for (int i = data.length(); --i >= 0; ) {

char c = data.charAt(i);

if (((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {

flag = true;

} else {

flag = false;

}

}

return flag;

}

/*数字+字母*/

public static boolean ispsd(String psd) {

Pattern p = Pattern

.compile("^([A-Za-z]|[0-9])+$");

Matcher m = p.matcher(psd);

return m.matches();

}

/**

* 手机验证

*

* @param mobiles

* @return

*/

public static boolean isMobileNO(String mobiles) {

Pattern p = Pattern

.compile("^((13[0-9])|(15[^4,\\D])|(14[57])|(17[0])|(17[7])|(18[0,0-9]))\\d{8}$");

Matcher m = p.matcher(mobiles);

return m.matches();

}

/**

* 验证邮政编码

*

* @param post

* @return

*/

public static boolean checkPost(String post) {

if (post.matches("[1-9]\\d{5}(?!\\d)")) {

return true;

} else {

return false;

}

}

/**

* 计算金额

*

* @param argStr

* @return

*/

public static String getFloatDotStr(String argStr) {

float arg = Float.valueOf(argStr);

DecimalFormat fnum = new DecimalFormat("##0.00");

return fnum.format(arg);

}

/**

* is null or its length is 0 or it is made by space

*

*

* isBlank(null) = true;

* isBlank("") = true;

* isBlank(" ") = true;

* isBlank("a") = false;

* isBlank("a ") = false;

* isBlank(" a") = false;

* isBlank("a b") = false;

*

*

* @param str

* @return if string is null or its size is 0 or it is made by space, return

* true, else return false.

*/

public static boolean isBlank(String str) {

return (str == null || str.trim().length() == 0);

}

/**

* is null or its length is 0

*

*

* isEmpty(null) = true;

* isEmpty("") = true;

* isEmpty(" ") = false;

*

*

* @param str

* @return if string is null or its size is 0, return true, else return

* false.

*/

public static boolean isEmpty(CharSequence str) {

return (str == null || str.length() == 0);

}

/**

* get length of CharSequence

*

*

* length(null) = 0;

* length(\"\") = 0;

* length(\"abc\") = 3;

*

*

* @param str

* @return if str is null or empty, return 0, else return

* {@link CharSequence#length()}.

*/

public static int length(CharSequence str) {

return str == null ? 0 : str.length();

}

/**

* null Object to empty string

*

*

* nullStrToEmpty(null) = "";

* nullStrToEmpty("") = "";

* nullStrToEmpty("aa") = "aa";

*

*

* @param str

* @return

*/

public static String nullStrToEmpty(Object str) {

return (str == null ? "" : (str instanceof String ? (String) str : str

.toString()));

}

/**

* capitalize first letter

*

*

* capitalizeFirstLetter(null) = null;

* capitalizeFirstLetter("") = "";

* capitalizeFirstLetter("2ab") = "2ab"

* capitalizeFirstLetter("a") = "A"

* capitalizeFirstLetter("ab") = "Ab"

* capitalizeFirstLetter("Abc") = "Abc"

*

*

* @param str

* @return

*/

public static String capitalizeFirstLetter(String str) {

if (isEmpty(str)) {

return str;

}

char c = str.charAt(0);

return (!Character.isLetter(c) || Character.isUpperCase(c)) ? str

: new StringBuilder(str.length())

.append(Character.toUpperCase(c))

.append(str.substring(1)).toString();

}

/**

* encoded in utf-8

*

*

* utf8Encode(null) = null

* utf8Encode("") = "";

* utf8Encode("aa") = "aa";

* utf8Encode("啊啊啊啊") = "%E5%95%8A%E5%95%8A%E5%95%8A%E5%95%8A";

*

*

* @param str

* @return

* @throws UnsupportedEncodingException if an error occurs

*/

public static String utf8Encode(String str) {

if (!isEmpty(str) && str.getBytes().length != str.length()) {

try {

return URLEncoder.encode(str, "UTF-8");

} catch (UnsupportedEncodingException e) {

throw new RuntimeException(

"UnsupportedEncodingException occurred. ", e);

}

}

return str;

}

/**

* encoded in utf-8, if exception, return defultReturn

*

* @param str

* @param defultReturn

* @return

*/

public static String utf8Encode(String str, String defultReturn) {

if (!isEmpty(str) && str.getBytes().length != str.length()) {

try {

return URLEncoder.encode(str, "UTF-8");

} catch (UnsupportedEncodingException e) {

return defultReturn;

}

}

return str;

}

/**

* get innerHtml from href

*

*

* getHrefInnerHtml(null) = ""

* getHrefInnerHtml("") = ""

* getHrefInnerHtml("mp3") = "mp3";

* getHrefInnerHtml("<a innerHtml</a>") = "<a innerHtml</a>";

* getHrefInnerHtml("<a>innerHtml</a>") = "innerHtml";

* getHrefInnerHtml("<a<a>innerHtml</a>") = "innerHtml";

* getHrefInnerHtml("<a href="baidu.com">innerHtml</a>") = "innerHtml";

* getHrefInnerHtml("<a href="baidu.com" title="baidu">innerHtml</a>") = "innerHtml";

* getHrefInnerHtml(" <a>innerHtml</a> ") = "innerHtml";

* getHrefInnerHtml("<a>innerHtml</a></a>") = "innerHtml";

* getHrefInnerHtml("jack<a>innerHtml</a></a>") = "innerHtml";

* getHrefInnerHtml("<a>innerHtml1</a><a>innerHtml2</a>") = "innerHtml2";

*

*

* @param href

* @return

*

if href is null, return ""

*

if not match regx, return source

*

return the last string that match regx

*

*/

public static String getHrefInnerHtml(String href) {

if (isEmpty(href)) {

return "";

}

String hrefReg = ".*(.+?).*";

Pattern hrefPattern = Pattern

.compile(hrefReg, Pattern.CASE_INSENSITIVE);

Matcher hrefMatcher = hrefPattern.matcher(href);

if (hrefMatcher.matches()) {

return hrefMatcher.group(1);

}

return href;

}

/**

* process special char in html

*

*

* htmlEscapeCharsToString(null) = null;

* htmlEscapeCharsToString("") = "";

* htmlEscapeCharsToString("mp3") = "mp3";

* htmlEscapeCharsToString("mp3<") = "mp3

* htmlEscapeCharsToString("mp3>") = "mp3\>";

* htmlEscapeCharsToString("mp3&mp4") = "mp3&mp4";

* htmlEscapeCharsToString("mp3"mp4") = "mp3\"mp4";

* htmlEscapeCharsToString("mp3<>&"mp4") = "mp3\&\"mp4";

*

*

* @param source

* @return

*/

public static String htmlEscapeCharsToString(String source) {

return StringUtils.isEmpty(source) ? source : source

.replaceAll("<", "")

.replaceAll("&", "&").replaceAll(""", "\"");

}

/**

* transform half width char to full width char

*

*

* fullWidthToHalfWidth(null) = null;

* fullWidthToHalfWidth("") = "";

* fullWidthToHalfWidth(new String(new char[] {12288})) = " ";

* fullWidthToHalfWidth("!"#$%&) = "!\"#$%&";

*

*

* @param s

* @return

*/

public static String fullWidthToHalfWidth(String s) {

if (isEmpty(s)) {

return s;

}

char[] source = s.toCharArray();

for (int i = 0; i < source.length; i++) {

if (source[i] == 12288) {

source[i] = ' ';

// } else if (source[i] == 12290) {

// source[i] = '.';

} else if (source[i] >= 65281 && source[i] <= 65374) {

source[i] = (char) (source[i] - 65248);

} else {

source[i] = source[i];

}

}

return new String(source);

}

/**

* transform full width char to half width char

*

*

* halfWidthToFullWidth(null) = null;

* halfWidthToFullWidth("") = "";

* halfWidthToFullWidth(" ") = new String(new char[] {12288});

* halfWidthToFullWidth("!\"#$%&) = "!"#$%&";

*

*

* @param s

* @return

*/

public static String halfWidthToFullWidth(String s) {

if (isEmpty(s)) {

return s;

}

char[] source = s.toCharArray();

for (int i = 0; i < source.length; i++) {

if (source[i] == ' ') {

source[i] = (char) 12288;

// } else if (source[i] == '.') {

// source[i] = (char)12290;

} else if (source[i] >= 33 && source[i] <= 126) {

source[i] = (char) (source[i] + 65248);

} else {

source[i] = source[i];

}

}

return new String(source);

}

/**

* 删除String最后一个字符

*

* @param text

* @return

*/

public static String trimLast(String text) {

String result = "";

result = text.substring(0, text.length() - 1);

return result;

}

public static String noZero(int number) {

if (number == 0) {

return "";

} else {

return String.valueOf(number);

}

}

public static void setPricePoint(final EditText editText) {

editText.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

String srt = s.toString();

if (srt.contains(".")) {

String rex = "[0-9]{0,9}\\.{1}[0-9]{0,2}";

Pattern pattern = Pattern.compile(rex);

if (pattern.matches(rex, srt)) {

if (s.length() - 1 - s.toString().indexOf(".") > 2) {

s = s.toString().subSequence(0, s.toString().indexOf(".") + 3);

editText.setText(s);

editText.setSelection(s.length());

}

String strs[] = srt.split("\\.");

if (strs != null && strs.length > 0) {

if (strs[0].length() > 8) {

String newStr = strs[0].substring(0, strs[0].length() - 1);

editText.setText(newStr + "." + strs[1]);

editText.setSelection(newStr.length());

}

System.out.println("strs==" + strs.length);

}

} else {

if (srt.length() != 0) {

if (srt.length() == editText.getSelectionEnd()) {

srt = srt.substring(0, srt.length() - 1);

editText.setText(srt);

editText.setSelection(srt.length());

} else {

srt = srt.substring(0, editText.getSelectionEnd() - 1);

editText.setText(srt);

editText.setSelection(srt.length());

}

}

}

} else {

if (srt.length() > 8) {

if (srt.length() != 0) {

srt = srt.substring(0, srt.length() - 1);

editText.setText(srt);

editText.setSelection(srt.length());

}

}

}

if (s.toString().trim().substring(0).equals(".")) {

s = "0" + s;

editText.setText(s);

editText.setSelection(2);

}

if (s.toString().startsWith("0") && s.toString().trim().length() > 1) {

if (!s.toString().substring(1, 2).equals(".")) {

editText.setText(s.subSequence(0, 1));

editText.setSelection(1);

return;

}

}

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override

public void afterTextChanged(Editable s) {

// TODO Auto-generated method stub

}

});

}

}

大家自己看一下吧 基本都有注释,并不难理解,如果哪块我有写的不对的地方也可以给我指出来,大家一起进步~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值