UrlUtils工具类,Java URL工具类,Java URL链接工具类
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年7月15日
http://fanshuyao.iteye.com/
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class UrlUtils {
/**
* 向url链接追加参数
* @param url
* @param params Map<String, String>
* @return
*/
public static String appendParams(String url, Map<String, String> params){
if(StrUtils.isBlank(url)){
return "";
}else if(StrUtils.isEmptyMap(params)){
return url.trim();
}else{
StringBuffer sb = new StringBuffer("");
Set<String> keys = params.keySet();
for (String key : keys) {
sb.append(key).append("=").append(params.get(key)).append("&");
}
sb.deleteCharAt(sb.length() - 1);
url = url.trim();
int length = url.length();
int index = url.indexOf("?");
if(index > -1){//url说明有问号
if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?
url += sb.toString();
}else{//情况为:http://wwww.baidu.com?aa=11
url += "&" + sb.toString();
}
}else{//url后面没有问号,如:http://wwww.baidu.com
url += "?" + sb.toString();
}
return url;
}
}
/**
* 向url链接追加参数(单个)
* @param url
* @param name String
* @param value String
* @return
*/
public static String appendParam(String url, String name, String value){
if(StrUtils.isBlank(url)){
return "";
}else if(StrUtils.isBlank(name)){
return url.trim();
}else{
Map<String, String> params = new HashMap<String, String>();
params.put(name, value);
return appendParams(url, params);
}
}
/**
* 移除url链接的多个参数
* @param url String
* @param paramNames String[]
* @return
*/
public static String removeParams(String url, String... paramNames){
if(StrUtils.isBlank(url)){
return "";
}else if(StrUtils.isEmptyArray(paramNames)){
return url.trim();
}else{
url = url.trim();
int length = url.length();
int index = url.indexOf("?");
if(index > -1){//url说明有问号
if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?
return url;
}else{//情况为:http://wwww.baidu.com?aa=11或http://wwww.baidu.com?aa=或http://wwww.baidu.com?aa
String baseUrl = url.substring(0, index);
String paramsString = url.substring(index + 1);
String[] params = paramsString.split("&");
if(!StrUtils.isEmptyArray(params)){
Map<String, String> paramsMap = new HashMap<String, String>();
for (String param : params) {
if(!StrUtils.isBlank(param)){
String[] oneParam = param.split("=");
String paramName = oneParam[0];
int count = 0;
for(int i=0; i<paramNames.length; i++){
if(paramNames[i].equals(paramName)){
break;
}
count ++;
}
if(count == paramNames.length){
paramsMap.put(paramName, (oneParam.length > 1)?oneParam[1]:"");
}
}
}
if(!StrUtils.isEmptyMap(paramsMap)){
StringBuffer paramBuffer = new StringBuffer(baseUrl);
paramBuffer.append("?");
Set<String> set = paramsMap.keySet();
for (String paramName : set) {
paramBuffer.append(paramName).append("=").append(paramsMap.get(paramName)).append("&");
}
paramBuffer.deleteCharAt(paramBuffer.length() - 1);
return paramBuffer.toString();
}
return baseUrl;
}
}
}
return url;
}
}
public static void main(String[] args) {
/*String a = "http://wwww.baidu.com";
String b = "http://wwww.baidu.com?";
String c = "http://wwww.baidu.com?aa=11";
System.out.println("a="+appendParam(a, "bb", "1"));
System.out.println("b="+appendParam(b, "bb", "1"));
System.out.println("c="+appendParam(c, "bb", "1"));*/
String d = "http://wwww.baidu.com?aa";
String e = "http://wwww.baidu.com?aa=11&bb=22&cc=33";
String f = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd=";
String g = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd";
System.out.println("g="+removeParams(g, "cc","aa"));
}
}
StrUtils 工具类:
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class StrUtils {
/**
* 随机获取数字和大写英文字母组合的字符串
* @param size 返回的字符串的位数,如果小于1,则默认是6
* @return String
* @since 2015-09-25
*/
public static String getRandomLetterAndDigital(int size){
String str = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";//去掉容易混淆字符:0与O,1与I
StringBuffer sb = new StringBuffer();
if(size < 1){
size = 6;
}
for(int i=0; i<size; i++){
int ran = (int) (Math.random()*str.length());
sb.append(str.charAt(ran));
}
return sb.toString().trim();
}
/**
* 随机获取大/小写英文字母组合的字符串
* @param size 返回的字符串的位数,如果小于1,则默认是6
* @return String
* @since 2015-09-25
*/
public static String getLetter(int size){
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
StringBuffer sb = new StringBuffer();
if(size < 1){
size = 6;
}
for(int i=0; i<size; i++){
int ran = (int) (Math.random()*str.length());
sb.append(str.charAt(ran));
}
return sb.toString().trim();
}
/**
* 随机获取大写英文字母组合的字符串
* @param size 返回的字符串的位数,如果小于1,则默认是6
* @return String
* @since 2015-09-25
*/
public static String getUpperLetter(int size){
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuffer sb = new StringBuffer();
if(size < 1){
size = 6;
}
for(int i=0; i<size; i++){
int ran = (int) (Math.random()*str.length());
sb.append(str.charAt(ran));
}
return sb.toString().trim();
}
/**
* 随机获取数字字符串
* @param size 返回的字符串的位数
* @return String
* @since 2015-09-25
*/
public static String getRandomDigital(int size){
String str = "1234567890";
StringBuffer sb = new StringBuffer();
if(size < 1){
return null;
}else{
for(int i=0; i<size; i++){
int ran = (int) (Math.random()*10);
sb.append(str.charAt(ran));
}
return sb.toString().trim();
}
}
/**
* 获取随机数字,同getRandomDigital
* @param size
* @return
*/
public static String getNumber(int size){
return getRandomDigital(size);
}
/**
* 生成年月日时分秒毫秒(20120905050602000)
* @return
* @since 2015-09-25
*/
public static String getYYYYMMDDHHmmssmilliSecond(){
StringBuffer str = new StringBuffer("");
String strMonth = "";
String strDate = "";
String strHour = "";
String strMinute = "";
String strSecond = "";
String strMilliSecond = "";
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int date = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int milliSecond = cal.get(Calendar.MILLISECOND);
if(month < 10){
strMonth = "0" + month;
}else{
strMonth = String.valueOf(month);
}
if(date < 10){
strDate = "0" + date;
}else{
strDate = String.valueOf(date);
}
if(hour < 10){
strHour = "0" + hour;
}else{
strHour = String.valueOf(hour);
}
if(minute < 10){
strMinute = "0" + minute;
}else{
strMinute = String.valueOf(minute);
}
if(second < 10){
strSecond = "0" + second;
}else{
strSecond = String.valueOf(second);
}
if(milliSecond < 10){
strMilliSecond = "00" + milliSecond;
}else if(milliSecond < 100){
strMilliSecond = "0" + milliSecond;
}else{
strMilliSecond = String.valueOf(milliSecond);
}
return str.append(String.valueOf(year).toString().trim()).append(strMonth.trim()).append(strDate.trim()).append(strHour.trim()).append(strMinute.trim()).append(strSecond.trim()).append(strMilliSecond.trim()).toString();
}
/**
* 生成年月日(20120905050602000)
* @return
* @since 2015-09-25
*/
public static String getYYYYMMDD(){
StringBuffer str = new StringBuffer("");
String strMonth = "";
String strDate = "";
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int date = cal.get(Calendar.DATE);
if(month < 10){
strMonth = "0" + month;
}else{
strMonth = String.valueOf(month);
}
if(date < 10){
strDate = "0" + date;
}else{
strDate = String.valueOf(date);
}
return str.append(String.valueOf(year).toString().trim()).append(strMonth.trim()).append(strDate.trim()).toString();
}
/**
* 获取uuid,有横杠(36位)
* @return
* @since 2015-10-14
*/
public static String getUUID(){
return UUID.randomUUID().toString();
}
/**
* 获取uuid,无横杠(32位)
* @return
* @author lqyao
* @since 2015-10-14
*/
public static String getUUIDNumberOnly(){
return UUID.randomUUID().toString().replaceAll("-", "");
}
/**
* 移除字符串最后一个字符
* @return
* @since 2015-10-14
*/
public static String removeLastCode(String str){
if(str == null || str.length() < 1){
return str;
}
return str.substring(0, str.length()-1);
}
/**
* 第一个字符变大写
* @param str
* @return
*/
public static String firstCodeToUpperCase(String str){
if(isBlank(str)){
return str;
}
String strTrim = str.trim();
return String.valueOf(strTrim.charAt(0)).toUpperCase() + strTrim.substring(1,strTrim.length());
}
/**
* 获取字符串最后一个字符
* @return
* @since 2016-01-13
*/
public static String getLastCode(String str){
if(str == null || str.length() < 1){
return "";
}
return str.substring(str.length()-1);
}
/**
* 获取第一个id
* @param str 字符串
* @return id
*/
public static String getFirstId(String str, String spiltCode) {
if (spiltCode == null) {
spiltCode = ",";
}
if(!StrUtils.isEmpty(str)){
if (str.indexOf(spiltCode) > -1) {
return str.substring(0, str.indexOf(spiltCode)).trim();
}
}
return str;
}
/**
* 去相同部分
* @param originalStr 原字符串
* @param deleteStr 需要去掉的字符串
* @return string
* @author lqy
*/
public static String removeSamePart(String originalStr, String deleteStr) {
if (originalStr != null && deleteStr != null) {
originalStr = originalStr.replaceAll("\\(", "(");
originalStr = originalStr.replaceAll("\\)", ")");
originalStr = originalStr.replaceAll(" | ", "");
deleteStr = deleteStr.replaceAll("\\(", "(");
deleteStr = deleteStr.replaceAll("\\)", ")");
deleteStr = deleteStr.replaceAll(" | ", "");
if (originalStr.indexOf(deleteStr) > -1) {
originalStr = originalStr.replaceAll(deleteStr, "");
}
}
return originalStr;
}
/**
* 拆分字符串获取数组
* @param str 字符串
* @param spiltCode 拆分符号
* @return String[]
*/
public static String[] getArrayAfterSpilt(String str, String spiltCode) {
if (str == null || str.trim().equals("")) {
return null;
}else{
if (spiltCode == null || spiltCode.trim().equals("")) {
spiltCode = ",";
}
return str.split(spiltCode);
}
}
/**
* 拆分字符串获取Ids
* @param idsString id字符串
* @param spiltCode 拆分符号
* @return ids
*/
public static int[] getIdsAfterSpilt(String idsString, String spiltCode) {
List<Integer> idList = new ArrayList<Integer>();
if (idsString == null || idsString.trim().equals("")) {
return null;
} else {
if (spiltCode == null || spiltCode.trim().equals("")) {
spiltCode = ",";
}
String[] idArray = idsString.split(spiltCode);
if (idArray != null && idArray.length > 0) {
for (String string : idArray) {
if (string != null && !string.trim().equals("")) {
idList.add(Integer.parseInt(string.trim()));
}
}
}
}
if (idList != null && idList.size() > 0) {
int[] ids = new int[idList.size()];
for (int j = 0; j < idList.size(); j++) {
ids[j] = idList.get(j);
}
return ids;
}
return null;
}
/**
*
* @param obj
* @return obj == null;
*/
public static boolean isNull(Object obj) {
return obj == null;
}
/**
* 判断list是否为Null
* @param list
* @return
*/
public static <T> boolean isNullList(List<T> list) {
return (list == null);
}
/**
* 判断list是否为空
* @param list
* @return (list == null) || (list.size() < 1)
*/
public static <T> boolean isEmptyList(List<T> list) {
return (list == null) || (list.size() < 1);
}
/**
* 判断Map是否为Null
* @param map
* @return
*/
public static <K, V> boolean isNullMap(Map<K, V> map) {
return (map == null);
}
/**
* 判断Map是否为空
* @param map
* @return
*/
public static <K, V> boolean isEmptyMap(Map<K, V> map) {
return (map == null || map.size() < 1);
}
/**
* 判断数组是否为Null
* @param obj
* @return
*/
public static boolean isNullArray(Object[] obj) {
return (obj == null);
}
/**
* 判断数组是否为空
* @param obj
* @return
*/
public static boolean isEmptyArray(Object[] obj) {
return (obj == null || obj.length < 1);
}
/**
* <p>Checks if a String is empty ("") or null.</p>
*
* <pre>
* StringUtils.isEmpty(null) = true
* StringUtils.isEmpty("") = true
* StringUtils.isEmpty(" ") = false
* StringUtils.isEmpty("bob") = false
* StringUtils.isEmpty(" bob ") = false
* </pre>
*
* <p>NOTE: This method changed in Lang version 2.0.
* It no longer trims the String.
* That functionality is available in isBlank().</p>
*
* @param str the String to check, may be null
* @return <code>true</code> if the String is empty or null
*/
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
/**
* <p>Checks if a String is whitespace, empty ("") or null.</p>
*
* <pre>
* StringUtils.isBlank(null) = true
* StringUtils.isBlank("") = true
* StringUtils.isBlank(" ") = true
* StringUtils.isBlank("bob") = false
* StringUtils.isBlank(" bob ") = false
* </pre>
*
* @param str the String to check, may be null
* @return <code>true</code> if the String is null, empty or whitespace
* @since 2.0
*/
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
/**
* <p>Checks if the String contains only whitespace.</p>
*
* <p><code>null</code> will return <code>false</code>.
* An empty String ("") will return <code>true</code>.</p>
*
* <pre>
* StringUtils.isWhitespace(null) = false
* StringUtils.isWhitespace("") = true
* StringUtils.isWhitespace(" ") = true
* StringUtils.isWhitespace("abc") = false
* StringUtils.isWhitespace("ab2c") = false
* StringUtils.isWhitespace("ab-c") = false
* </pre>
*
* @param str the String to check, may be null
* @return <code>true</code> if only contains whitespace, and is non-null
* @since 2.0
*/
public static boolean isWhitespace(String str) {
if (str == null) {
return false;
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
/**
* 变成中文括号
* @param str
* @return
*/
public static String bracketToChinese(String str){
if(isBlank(str)){
return str;
}
String strTrim = str.trim();
strTrim = strTrim.replaceAll("\\(", "(").replaceAll("\\)", ")");
return strTrim;
}
/**
* 变成英文括号
* @param str
* @return
*/
public static String bracketToEnglish(String str){
if(isBlank(str)){
return str;
}
String strTrim = str.trim();
strTrim = strTrim.replaceAll("(", "(").replaceAll(")", ")");
return strTrim;
}
/**
* 替换字符串
* @param str
* @param sourceStr,如果是特殊字符,如英文()、[]等,要使用\\(
* @param targetStr
* @return
*/
public static String replaceStr(String str, String sourceStr, String targetStr){
if(isBlank(str)){
return str;
}
String strTrim = str.trim();
strTrim = strTrim.replaceAll(sourceStr, targetStr);
return strTrim;
}
/**
* 根据idsString组装in后面带?的sql
* @param idsString String
* @return
*/
public static String getInSql(String idsString){
if(StrUtils.isBlank(idsString)){
throw new RuntimeException("参数不能为空");
}
String[] ids = idsString.split(",");
StringBuffer sb = new StringBuffer("").append("(");
for (String id : ids) {
if(!StrUtils.isBlank(id)){
sb.append("?").append(",");
}
}
if(sb.indexOf(",") > -1){
sb.deleteCharAt(sb.length() - 1);
}
sb.append(")");
return sb.toString();
}
/**
* 根据idsString字符串,返回组装后的参数params
* @param params List<Object>
* @param idsString String
* @return
*/
public static List<Object> setIdsParams(List<Object> params, String idsString){
if(StrUtils.isNullList(params) || StrUtils.isBlank(idsString)){
throw new RuntimeException("参数不能为空");
}
String[] ids = idsString.split(",");
for (String id : ids) {
if(!StrUtils.isBlank(id)){
params.add(id);
}
}
return params;
}
/**
* 根据idsString组装in后面带?的sql,并设置params参数值
* @param params List<Object>
* @param idsString String
* @return
*/
public static String getInSql(List<Object> params, String idsString){
if(StrUtils.isNullList(params) || StrUtils.isBlank(idsString)){
throw new RuntimeException("参数不能为空");
}
StringBuffer sb = new StringBuffer("").append("(");
String[] ids = idsString.split(",");
for (String id : ids) {
if(!StrUtils.isBlank(id)){
sb.append("?").append(",");
params.add(id);
}
}
if(sb.indexOf(",") > -1){
sb.deleteCharAt(sb.length() - 1);
}
sb.append(")");
return sb.toString();
}
/**
* 把大写字母转换成_加小写字母(例:Q变为_q)
* @param str 必须为一个字符
* @return
* @author lqy
*/
public static String replaceUpperCase(String str){
if(isEmpty(str)){
return str;
}
return "_" + str.trim().toLowerCase();
}
/**
* 根据实体名获取tableName,即把大写字母变成_加小写字母
* @param entityName
* @return
* @author lqy
*/
public static String clazzNameToTableName(String clazzName){
if(StrUtils.isEmpty(clazzName)){
return null;
}
String nameTrim = clazzName.trim();
int length = nameTrim.length();
StringBuffer tableName = new StringBuffer("");
if(length > 0){
for (int i = 0; i < length; i++) {
char c = nameTrim.charAt(i);
if(!"".equals(c)){
if(RegUtils.isUpperCase(String.valueOf(c)) && i > 0 ){//i!=0排除第一个大写字母,不加下划线
tableName.append(StrUtils.replaceUpperCase(String.valueOf(c)));
}else{
tableName.append(String.valueOf(c).toLowerCase());
}
}
}
}
//System.out.println("=====tableName.toString()="+tableName.toString());
return tableName.toString();
}
public static void main(String[] args) throws Exception {
/*System.out.println("getUUID = "+getUUID());
System.out.println("getUUID = "+getUUID());
System.out.println("getUUID = "+getUUID());
System.out.println("getUUIDNumberOnly = "+getUUIDNumberOnly());*/
//System.out.println(removeLastCode(" ab "));
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年7月15日
http://fanshuyao.iteye.com/