JAVA各种计算工具类
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.pokmon.core;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import .HttpURLConnection;
import .InetAddress;
import workInterface;
import .SocketException;
import .URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import ng.StringUtils;
public class Util {
public final static String BASE_CODE = "utf-8";
public static Map
static {
platformMap.put("qzone", "1");
platformMap.put("pengyou", "2");
}
/**
* 检查字符串长度,一个中文算两个英文字符的长度
*
* @param str
* @param min
* @param max
* @return
*/
public static boolean checkChineseStrLen(String str, int min, int max) { if (null == str) {
return true;
}
int byteLen = str.getBytes().length;
if (System.getProperty("file.encoding").equalsIgnoreCase("UTF-8")) { int charsum = str.toCharArray().length; // 字符数
int bytesum = str.getBytes().length;// 字节数
int hanzisum = (bytesum - charsum) / 2;
byteLen = hanzisum * 2 + charsum - hanzisum;
}
if (byteLen < min || byteLen > max) {
return false;
}
return true;
}
/**
* 判断用户账号的合法性字母数组-_@.几种的组合6-128位* @param userid
* @return
*/
public static boolean checkUserId(String userid)
{
if(userid.matches("[A-Za-z_0-9@.-]{6,128}"))
{
return true;
}else
{
return false;
}
}
/**
* 根据一个几率数组随机取机一个值
*
* @param rate
* 类似rate=20;50;75;100
* @return
*/
public static int getRatePos(String rate) {
int pos = 0;
String[] splits = rate.split(";");
Random random = new Random();
int rand = random.nextInt(Integer.parseInt(splits[splits.length - 1]));
for (int i = 0; i < splits.length; i++) {
if (rand < Integer.parseInt(splits[i])) {
pos = i + 1;
break;
}
}
return pos;
}
/**
* 看一个固定的值在这个数据的哪个区间
*
* @param rate
* 类似rate=20;50;75;100
* @return
*/
public static int getRateSpace(String rate, int rand) {
int pos = 0;
String[] splits = rate.split(";");
for (int i = 0; i < splits.length; i++) {
if (rand >= Integer.parseInt(splits[splits.length - 1])) {
pos = splits.length;
break;
}
if (rand < Integer.parseInt(splits[i])) {
pos = i;
break;
}
}
return pos;
}
/**
* 取得sequence中指定位置的值
*
* @param sequence
* 类似sequence=20;50;75;100