⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.java

📁 中国联通炫铃业务接口开发
💻 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 + -