JAVA各种计算工具类.docx
- 文档编号:13566285
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:30
- 大小:20.45KB
JAVA各种计算工具类.docx
《JAVA各种计算工具类.docx》由会员分享,可在线阅读,更多相关《JAVA各种计算工具类.docx(30页珍藏版)》请在冰点文库上搜索。
JAVA各种计算工具类
packagecom.pokmon.core;
importjava.io.BufferedReader;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
import.HttpURLConnection;
import.InetAddress;
import.NetworkInterface;
import.SocketException;
import.URL;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.HashSet;
importjava.util.Iterator;
importjava.util.Map;
importjava.util.Random;
importjava.util.Set;
importjava.util.TreeMap;
importnet.sf.json.JSONArray;
importnet.sf.json.JSONException;
importnet.sf.json.JSONObject;
importmons.lang.StringUtils;
publicclassUtil{
publicfinalstaticStringBASE_CODE="utf-8";
publicstaticMap
static{
platformMap.put("qzone","1");
platformMap.put("pengyou","2");
}
/**
*检查字符串长度,一个中文算两个英文字符的长度
*
*@paramstr
*@parammin
*@parammax
*@return
*/
publicstaticbooleancheckChineseStrLen(Stringstr,intmin,intmax){
if(null==str){
returntrue;
}
intbyteLen=str.getBytes().length;
if(System.getProperty("file.encoding").equalsIgnoreCase("UTF-8")){
intcharsum=str.toCharArray().length;//字符数
intbytesum=str.getBytes().length;//字节数
inthanzisum=(bytesum-charsum)/2;
byteLen=hanzisum*2+charsum-hanzisum;
}
if(byteLen
returnfalse;
}
returntrue;
}
/**
*判断用户账号的合法性字母数组-_@.几种的组合6-128位
*@paramuserid
*@return
*/
publicstaticbooleancheckUserId(Stringuserid)
{
if(userid.matches("[A-Za-z_0-9@.-]{6,128}"))
{
returntrue;
}else
{
returnfalse;
}
}
/**
*根据一个几率数组随机取机一个值
*
*@paramrate
*类似rate=20;50;75;100
*@return
*/
publicstaticintgetRatePos(Stringrate){
intpos=0;
String[]splits=rate.split(";");
Randomrandom=newRandom();
intrand=random.nextInt(Integer.parseInt(splits[splits.length-1]));
for(inti=0;i if(rand pos=i+1; break; } } returnpos; } /** *看一个固定的值在这个数据的哪个区间 * *@paramrate *类似rate=20;50;75;100 *@return */ publicstaticintgetRateSpace(Stringrate,intrand){ intpos=0; String[]splits=rate.split(";"); for(inti=0;i if(rand>=Integer.parseInt(splits[splits.length-1])){ pos=splits.length; break; } if(rand pos=i; break; } } returnpos; } /** *取得sequence中指定位置的值 * *@paramsequence *类似sequence=20;50;75;100 *@parampos *第几个位置: 从1开始 *@return */ publicstaticStringgetValueByPos(Stringsequence,intpos){ String[]splits=sequence.split(";"); if(splits.length>=pos){ returnsplits[pos-1]; } returnnull; } /** *随机取出sequence中的一个值,按平均机率取 * *@paramsequence *@return */ publicstaticStringgetRandFromArray(Stringsequence){ Stringres=""; String[]arrays=sequence.split(";"); Randomrandom=newRandom(); intrand=random.nextInt(arrays.length); res=arrays[rand]; returnres; } /** *随机取出sequence中的一个序号,按平均机率取 * *@paramsequence *@return */ publicstaticintgetRandIndexFromArray(Stringsequence){ String[]arrays=sequence.split(";"); Randomrandom=newRandom(); intrand=random.nextInt(arrays.length); returnrand; } /** *根据成功率生成结果,返回0成功1失败 * *@paramrate *成功率 *@return */ publicstaticintgetSuccessResult(intrate){ intres=0; Randomrandom=newRandom(); intrand=random.nextInt(100); if(rand>=0&&rand res=0; }else{ res=1; } returnres; } /** *根据成功率生成结果,返回0成功1失败(万分的机率) * *@paramrate *成功率 *@return */ publicstaticintgetSuccessResultWan(intrate){ intres=0; Randomrandom=newRandom(); intrand=random.nextInt(10000); if(rand>=0&&rand res=0; }else{ res=1; } returnres; } /** *从两个固定的值之间随便一个数值 * *@parammin *@parammax *@return */ publicstaticintgetRateFromTwoValue(intmin,intmax){ Randomrandom=newRandom(); intrand=random.nextInt(max-min+1)+min; returnrand; } /** *判断字符itemId是否在序列串sequence中 * *@paramitemId *目标字符串 *@paramsequence *序列串类似sequence=20;50;75;100 *@return */ publicstaticbooleanisInSequence(StringitemId,Stringsequence){ String[]arrays=sequence.split(";"); for(Strings: arrays){ if(s.equals(itemId)){ returntrue; } } returnfalse; } /** *判断某个值在序列中的位置,返回-1为不存在 * *@paramseq *@paramvalue *@return */ publicstaticintgetPosFromSeq(Stringseq,Stringvalue){ intpos=-1; String[]arrays=seq.split(";"); for(inti=0;i if(arrays[i].equals(value)){ pos=i; break; } } returnpos; } /** *从两个固定的值之间随机取不同的Num个数值 * *@paramnum *取不同随机数量 *@parammin *@parammax *@return */ publicstaticSet Set while(true){ inti=getRateFromTwoValue(min,max); set.add(newInteger(i)); if(set.size()==num){ break; } } returnset; } /** *判断编号是否为空 * *@paramno *@return如果为空返回true,如果不为空返回false */ publicstaticbooleanisNullNo(Stringno){ if(StringUtils.isEmpty(no)||"null".equals(no)||"0".equals(no)){ returntrue; } returnfalse; } /** *从字符串解析日期yyy-MM-dd * *@paramstr *@return */ publicstaticDateparseDate(Stringstr){ Datedate=null; try{ date=newSimpleDateFormat("yyyyMMdd").parse(str); }catch(Exceptione){ //e.printStackTrace(); } returndate; } /** *从字符串解析日期yyy-MM-dd * *@paramstr *@return */ publicstaticDateparseDateFormate(Stringstr,Stringformate){ Datedate=null; try{ date=newSimpleDateFormat(formate).parse(str); }catch(Exceptione){ //e.printStackTrace(); } returndate; } publicstaticStringDateToStr(Datedate,Stringformate){ Stringstr=newSimpleDateFormat(formate).format(date); returnstr; } /** *时间前推或后推分钟,其中JJ表示秒. */ publicstaticStringgetPreTime(Stringsj1,Stringjj){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH: mm: ss"); Stringmydate1=""; try{ Datedate1=format.parse(sj1); longTime=(date1.getTime()/1000)+Integer.parseInt(jj); date1.setTime(Time*1000); mydate1=format.format(date1); }catch(Exceptione){ } returnmydate1; } /** *时间前推或后推分钟,其中JJ表示秒. */ publicstaticDategetPreTime(Datesj1,Integerjj){ Datedate1=null; try{ longTime=(sj1.getTime()/1000)+jj; date1=newDate(Time*1000); //date1.setTime(Time*1000); }catch(Exceptione){ } returndate1; } /** *转换十六进制编码为字符串 * *@params *@return */ publicstaticStringtoStringHex(Strings){ if("0x".equals(s.substring(0,2))){ s=s.substring (2); } if(s.length()==1){ s="0"+s; } byte[]baKeyword=newbyte[s.length()/2]; for(inti=0;i try{ baKeyword[i]=(byte)(0xff&Integer.parseInt(s.substring( i*2,i*2+2),16)); }catch(Exceptione){ e.printStackTrace(); } } try{ s=newString(baKeyword,"utf-8");//UTF-16le: Not }catch(Exceptione1){ e1.printStackTrace(); } returns; } /** *转化字符为十六进制编码 * *@paramch *@return */ publicstaticStringtoHexChar(charch){ Stringstr="\\u"; Stringtemp=Integer.toHexString(ch); for(inti=0;i<4-temp.length();i++){ str=str+"0"; } str=str+temp; returnstr; } /** *属性最终值=(原始值*(1000+加值千分比)/1000+加值)*(1000+加值后千分比)/1000 * *@paramoldvalue *原来值 *@paramaddrate1 *加值千分比 *@paramadd *加成值 *@paramaddrate2 *加成后千分比 *@return如果为负数,返回0 */ publicstaticintcalPetFinalattri(intoldvalue,intaddrate1,intadd, intaddrate2){ oldvalue=(oldvalue*(1000+addrate1)/1000+add) *(1000+addrate2)/1000; returnoldvalue<0? 0: oldvalue; } /** *判断日期是否当天 * *@paramdate *@return */ publicstaticbooleanisToday(Datedate){ Calendarcal=Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY,23); cal.set(Calendar.MINUTE,59); cal.set(Calendar.SECOND,59); longdis=cal.getTime().getTime()-date.getTime(); if(dis<=0){ returnfalse; } longdays=dis/(24*60*60*1000); if(days==0){ returntrue; } returnfalse; } /** *判断日期是否当天 * *@paramdate秒 *@return */ publicstaticbooleanisToday1(Longdate){ Calendarcal=Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY,23); cal.set(Calendar.MINUTE,59); cal.set(Calendar.SECOND,59); longdis=cal.getTime().getTime()-date*1000; if(dis<=0){ returnfalse; } longdays=dis/(24*60*60*1000); if(days==0){ returntrue; } returnfalse; } /** *返回该天的hh: mm: ss的时间 *time秒 */ publicstaticLongget24time(Longtime,Integerhh,Integermm,Integerss){ Calendarcal=Calendar.getInstance(); Datedate=newDate(time*1000); cal.setTime(date); cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DATE),hh,mm,ss); returncal.getTime().getTime()/1000; } /** *判断日期是否当天或昨天 *判断好友是否是活跃的 *@paramdate *@return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 各种 计算 工具