字符串工具类,字符串的拆分和正则

import java.util.Scanner;

package com.zq.utils.string;

一、判断字符串中特定字符串的个数

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

1.两个工具类:

import org.apache.log4j.Logger;

2.首字母大写(用到toUpperCase方法、substring方法:前包后不包);

 

判断是否全为数字(可被正则代替)

/**
*
* 字符串工具类
*
* Created by MyEclipse. Author: ChenBin E-mail: chenb@8000056.com
Date:
* 2016-6-17 Time: 上午11:36:06 Company: HuNan BwWan information
technology
* co.,LTD Web sites:
*/
public class StringUtils {
官方澳门新永利下载,private static Logger logger = Logger.getLogger(StringUtils.class);
/**
* 空格
*/
public static final String SPACING = ” “;
/**
* 空字符串
*/
public static final String EMPTY_STR = “”;
/**
* email正则表达式
*/
public static final String REGEX_EMAIL =
“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”;
/**
* 浮点数或者整数表达式
*/
public static final String REGEX_NUMBER =
“^\-?\d+((\.\d+)|\d*)$”;
/**
* 纯数字正则表达式
*/
public static final String REGEX_INT = “^[0-9]*$”;
/**
* 严格手机号码判断(合法手机号 11位 13 14 15 18开头)
*/
public static final String REGEX_MOBILE = “^(13|14|15|18)\d{9}$”;
/**
* 仅能包含数字、字母和下划线
*/
public static final String REGEX_USERNAME = “[A-Za-z0-9_]+”;

/**

private StringUtils() {
}

 * 判断特定字符串个数
*/
public class StringDemo12 {
public static void main(String[] args) {
String str = “javajavajavasdfsfajavasdfsdajavasdferja”;
String ob = “java”;
int strnum = str.length();
int cishu = strnum/4;
int num = 0;
for(int j = 0 ; j < strnum-3 ; j++){
String sub = str.substring(j,j+4);
if(sub.equals(ob)){
num++;
}
System.out.println(num);
}
System.out.println(“************”);
System.out.println(num);
System.out.println(up(str));
String number = “sssssss113333”;
System.out.println(isNumber(up(str))?”有数字”:”没有数字”);
System.out.println(isNumber(number)?”有数字”:”没有数字”);
 
}
/**
* 将字符串首字母大写
* @param str
* @return
*/
public static String up(String str){
return str.substring(0,1).toUpperCase()+str.substring(1);
}
/**
* 判断字符串中是全部是数字
* @param str
* @return
*/
public static boolean isNumber(String str){
char[] a = str.toCharArray();
for(int i = 0 ; i < a.length ; i++){
if(a[i] > ‘9’ && a[i] < ‘0’){
return true;
}
}
return false;
}
}

// public static void main(String[] args) {
// Map<String, String> map = new HashMap<String,
String>();
// map.put(“a”, “1”);
// map.put(“b”, “2”);
// Lang.convertMapKey(map, new MapKeyConvertor() {
// @Override
// public String convertKey(String key) {
// System.out.println(key);
// return key + 1;
// }
// }, true);
// System.out.println(Json.toJson(map));
// String str = “asdf32dfdsdfs”;
// System.out.println(Lang.md5(str));
// System.out.println(“a68e079ddfec7ac3a8e76d0a78a5732b”.length());
// System.out.println(Lang.isAndroid);
// String rootPath = Lang.runRootPath();
//// File file = new File(rootPath);
//// File f = Files.getFile(file, “init/citys.json”);
// String json = Files.read(rootPath + “init/citys.json”);
// List<SysAreaDict> list =Json.fromJsonAsList(SysAreaDict.class,
json);
// System.out.println(Json.toJson(list.get(12)));
// }

二、实现字符串的拆分(用到split方法,用for循环遍历)

/**
* Description :单个/批量判断是否为空
*
* @author : ChenBin
* @date : 2016-6-17 上午11:38:00
*/
public static boolean compareTrim(String… args) {//
单个/批量判断是否为空
if (args == null || args.length == 0)
return false;
for (String arg : args) {
if (null == arg || arg.trim().length() == 0 || “null”.equals(arg)) {
return false;
}
}
return true;
}

/**
 * 实现拆分
*/
public class StringDemo10 {
public static void main(String[] args) {
String name = “xingming:zhangfei|mima:123|xingbie:nan”;
String[] a = name.split(“\|”);
for(int i = 0 ; i < a.length ; i++){
System.out.println(a[i]);
String[] b = a[i].split(“:”);
System.out.println(b[0]+”=”+b[1]);
}
}
}
三、正则表达式的一个工具类,用到public boolean matches(String
regex)进行字符串的验证

/**
* Description :去掉str中所有的tar
*
* @author : ChenBin
* @date : 2016-6-17 上午11:40:03
*/
public static String removeAll(String str, String tar) {
if (compareTrim(str))
return str.replaceAll(tar, EMPTY_STR);
return “”;
}

/**
 * 正则判断
*/
public class StringDemo13 {
public static void main(String[] args) {
System.out.println(isRegex(“123″,”\d+”));
}
/**
* 正则匹配是否正确
* @param str 要匹配的字符串
* @param regex 正则表达式
* @return 是否匹配
*/
public static boolean isRegex(String str,String regex){
return str.matches(regex);//字符串验证
}
}

/**
* Description : 移除字符串中的空格
*
* @author : ChenBin
* @date : 2017年1月4日 下午5:26:13
*/
public static String removeEmpty(String str) {
if (compareTrim(str))
return removeAll(str, SPACING);
return null;
}

/**
* Description :将字符串转换成Integer类型
*
* @author : ChenBin
* @date : 2016-6-17 上午11:39:17
*/
public static int strToInteger(String arg) {
String s = removeAll(arg, SPACING);
if (compareTrim(s))
if (isInt(s))
return Integer.parseInt(s);
return 0;
}

/**
* Description :将字符串转换成Integer类型
*
* @author : ChenBin
* @date : 2016-6-17 上午11:39:17
*/
public static long strToLong(String arg) {
String s = removeAll(arg, SPACING);
if (compareTrim(s))
if (isInt(s))
return Long.parseLong(s);
return 0L;
}

/**
* @author : ChenBin
* @date : 2015-1-27 上午10:12:22
* @return 相等返回true,否则返回false
*/
public static boolean equals(String s1, String s2) {
if (compareTrim(s1, s2) && s1.equals(s2))
return true;
if ((null == s1 && null == s2) || (“”.equals(s1) && “”.equals(s2)))
return true;
return false;
}

/**
* Description : 判断字符串是否符合电子邮件格式
*
* @author : ChenBin
* @date : 2016-3-9 下午4:11:45
*/
public static boolean isEmail(String email) {
if (!StringUtils.compareTrim(email))
return false;
return email.matches(REGEX_EMAIL);
}

/**
* Description :判断是否为浮点数或者整数
*
* @author : ChenBin
* @date : 2016-3-9 下午4:27:54
*/
public static boolean isNumber(String num) {
if (!StringUtils.compareTrim(num))
return false;
Matcher isNum = Pattern.compile(REGEX_NUMBER).matcher(num);
if (!isNum.matches())
return false;
return true;
}

/**
* Description :严格判断字符串是否为合法手机号 11位 13 14 15 18开头
*
* @author : ChenBin
* @date : 2016-3-9 下午4:29:40
*/
public static boolean isMobile(String mobile) {
if (!StringUtils.compareTrim(mobile))
return false;
return mobile.matches(REGEX_MOBILE);
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注