📄 util.java
字号:
package com.wireless.crbt.gwif.global;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import com.wireless.sms.pub.util.Base64;
import com.wireless.sms.pub.util.MD5;
public final class Util {
/**序列号,从2000000000开始基本上能避免和数据库上有相同的Seq_no*/
private static int seq_no=2000000000;
/**
* 返回一个序列号,使用在异步通信模式下,由消息发起者设定,应答者对应给回此序列号。
* 序列号范围:0000000000-9999999999,循环使用
* @return String
*/
public static synchronized String getSeq_no(){
String seqno="";
if(seq_no<2147483647)
seq_no++;
else
seq_no=2000000000;
seqno=String.valueOf(seq_no);
if(seqno.length()>10){
seqno=seqno.substring(seqno.length()-10);
}
int count=10-seqno.length();
for(int i=0;i<count;i++){
seqno="0"+seqno;
}
return seqno;
}
/**
* 将int型参数seqno1的字符长度调整为10位,方法是参数大于10位则剪掉高位,不足则高位补0;
* @param seqno1
* @return
*/
public static synchronized String getSeq_no(int seqno1){
String seqno = String.valueOf(seqno1);
if(seqno.length()>10){
seqno=seqno.substring(seqno.length()-10);
}
int count=10-seqno.length();
for(int i=0;i<count;i++){
seqno="0"+seqno;
}
return seqno;
}
/**
* 将String型参数seqno1的字符长度调整为10位,方法是参数大于10位则剪掉高位,不足则高位补0;
* @param seqno1
* @return
*/
public static synchronized String getSeq_no(String seqno1){
String seqno = seqno1;
if(seqno.length()>10){
seqno=seqno.substring(seqno.length()-10);
}
int count=10-seqno.length();
for(int i=0;i<count;i++){
seqno="0"+seqno;
}
return seqno;
}
/**
* MD5加密
* @param str
* @return
*/
public static byte[] md5(String str) {
byte[] srcMsg=new byte[str.length()];
str2byte(srcMsg,str, 0, str.length());
MD5 md5=new MD5();
return md5.getMD5ofBytes(srcMsg,str.length());
}
private static void str2byte(byte[] ba, String s, int start, int len) {
if (ba.length <= start + len - 1)return;
if (s.length() < len) {
for (int i = 0; i < s.length(); i++) {
ba[start + i] = (byte)s.charAt(i);
}
for (int i = s.length(); i < len; i++) {
ba[start + i] = 0;
}
} else {
for (int i = 0; i < len; i++) {
ba[start + i] = (byte)s.charAt(i);
}
}
}
private static String byte2str(byte[] ba, int start, int len)
{
// if (ba.length <= start + len - 1) return null;
if (ba.length <= start + len - 1) return "";
String r = new String();
for (int i = 0; i < len; i++)
{
if (ba[start + i] == '\0') break;
r += (char)ba[start + i];
}
return r;
}
/**
* 该方法将返回JVM当前时间,格式:"yyyy-MM-dd HH:mm:ss";
* @return
*/
public static String getCurrentTime(){
SimpleDateFormat dateFormatter =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
GregorianCalendar gc=new GregorianCalendar(TimeZone.getDefault());
String time = dateFormatter.format(gc.getTime());
return time;
}
/**
* 由byte型转化为国标汉字;messageLength表征GBK汉字的长度,MessageCoding一般默认为15
*/
public static String getbyte2GBK(byte[] gbkbyte,int MessageLength,int MessageCoding){
String MessageContent=null;
// int MessageCoding=15;
if (MessageCoding == 8) {
try {
MessageContent = new String(gbkbyte, 0, MessageLength, "iso-10646-ucs-2");
//MessageContent = new String(ba, 69, MessageLength, "UnicodeBigUnmarked");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
} else if (MessageCoding == 15) {
try {
MessageContent = new String(gbkbyte, 0, MessageLength, "GBK");
} catch (UnsupportedEncodingException ex1) {
ex1.printStackTrace();
}
} else {
MessageContent = Util.byte2str(gbkbyte, 0, MessageLength);
}
return MessageContent;
}
/**
* 国标汉字gbkName转化为byte,MessageCoding编码格式默认为15
* */
public static byte[] getGBK2byte(String gbkName,int MessageCoding){
byte[] ringName2byte = null;
try {
if (MessageCoding == 8){
ringName2byte = gbkName.getBytes("iso-10646-ucs-2");
} else if (MessageCoding == 15) {
ringName2byte = gbkName.getBytes("GBK");
} else if(MessageCoding == 4 || MessageCoding == 3) {
ringName2byte = Base64.decode(gbkName.getBytes("iso-8859-1"));
} else {
ringName2byte = gbkName.getBytes("iso-8859-1");
}
} catch (Exception ex) {
ex.printStackTrace();
}
return ringName2byte;
}
/**
* test module
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
while(true){
System.out.println(Util.getSeq_no());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -