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

📄 decode.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
字号:
package com.tongtu.comm;

/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 2003-8-22
 * Time: 9:48:20
 * To change this template use Options | File Templates.
 */

//import com.kjlink.lawton.common.grammar.Grammar;

import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.io.ByteArrayInputStream;

/**
 * 字符串实用类。<p>
 * 提供各种常用字符串操作方法,如编码转换等等。
 * <p/>
 *
 * @author irevin
 * @version 1.0
 */
public class Decode {

    /**
     * 将给定的字符串转换为中文GBK编码的字符串。
     *
     * @param str 输入字符串
     * @return 经GBK编码后的字符串,如果有异常,则返回原编码字符串
     */
    public static String toChinese(final String str) {
        if (isNullorBlank(str)) {
            return str;
        }
        String retVal = str;
        try {
            retVal = new String(str.getBytes("ISO8859_1"), "GBK");
        } catch (Exception e) {
            //log...
        }
        return retVal;
    }//end toChinese()

    /**
     * 给定字符串是否为空。
     *
     * @param str 需要检查的字符串
     * @return 如果为null或"",则返回true,否则为false
     */
    public static boolean isNullorBlank(final String str) {
        boolean isNorB = false;
        if (null == str || 0 >= str.length()) {
            isNorB = true;
        }
        return isNorB;
    }//end isNullorBlank()

    //5位输入字符串,求其下一位
    public static String incrementString(final String str) {
        String newCodeString = "";
        if (str.length() >= 5) {
            int oldCode = Integer.parseInt(str);
            int newCode = oldCode + 1;
            newCodeString = newCode + "";
            while (newCodeString.length() < 5)
                newCodeString = "0" + newCodeString;
        }
        return newCodeString;
    }

    /*
     *按照一定格式"yyyy-MM-dd"得到当天时间
     *@Author Irevin 20030624
     */
    public static String getTime() throws Exception {
        String s = null;
        try {
            Calendar calendar = Calendar.getInstance();
            java.util.Date date = calendar.getTime();
            SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
            s = simpledateformat.format(date);
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return s;
    }

    public static String getTime2() throws Exception {
        String s = null;
        try {
            Calendar calendar = Calendar.getInstance();
            java.util.Date date = calendar.getTime();
            SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            s = simpledateformat.format(date);
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return s;
    }


    //*********************************************************************
    //* Base64 - a simple base64 encoder and decoder.
    //*
    //*     Copyright (c) 1999, Bob Withers - bwit@pobox.com
    //*
    //* This code may be freely used for any purpose, either personal
    //* or commercial, provided the authors copyright notice remains
    //* intact.
    //*********************************************************************

    /**
     * Encodes a String as a base64 String.
     *
     * @param data a String to encode.
     * @return a base64 encoded String.
     */
    public static String encodeBase64(String data) {
        return encodeBase64(data.getBytes());
    }

    /**
     * Encodes a byte array into a base64 String.
     *
     * @param data a byte array to encode.
     * @return a base64 encode String.
     */
    public static String encodeBase64(byte[] data) {
        int c;
        int len = data.length;
        StringBuffer ret = new StringBuffer(((len / 3) + 1) * 4);
        for (int i = 0; i < len; ++i) {
            c = (data[i] >> 2) & 0x3f;
            ret.append(cvt.charAt(c));
            c = (data[i] << 4) & 0x3f;
            if (++i < len)
                c |= (data[i] >> 4) & 0x0f;

            ret.append(cvt.charAt(c));
            if (i < len) {
                c = (data[i] << 2) & 0x3f;
                if (++i < len)
                    c |= (data[i] >> 6) & 0x03;

                ret.append(cvt.charAt(c));
            } else {
                ++i;
                ret.append((char) fillchar);
            }

            if (i < len) {
                c = data[i] & 0x3f;
                ret.append(cvt.charAt(c));
            } else {
                ret.append((char) fillchar);
            }
        }
        return ret.toString();
    }

    /**
     * Decodes a base64 String.
     *
     * @param data a base64 encoded String to decode.
     * @return the decoded String.
     */
    public static String decodeBase64(String data) {
        return decodeBase64(data.getBytes());
    }

    /**
     * Decodes a base64 aray of bytes.
     *
     * @param data a base64 encode byte array to decode.
     * @return the decoded String.
     */
    public static String decodeBase64(byte[] data) {
        int c, c1;
        int len = data.length;
        StringBuffer ret = new StringBuffer((len * 3) / 4);
        for (int i = 0; i < len; ++i) {
            c = cvt.indexOf(data[i]);
            ++i;
            c1 = cvt.indexOf(data[i]);
            c = ((c << 2) | ((c1 >> 4) & 0x3));
            ret.append((char) c);
            if (++i < len) {
                c = data[i];
                if (fillchar == c)
                    break;

                c = cvt.indexOf((char) c);
                c1 = ((c1 << 4) & 0xf0) | ((c >> 2) & 0xf);
                ret.append((char) c1);
            }

            if (++i < len) {
                c1 = data[i];
                if (fillchar == c1)
                    break;

                c1 = cvt.indexOf((char) c1);
                c = ((c << 6) & 0xc0) | c1;
                ret.append((char) c);
            }
        }
        return ret.toString();
    }

    private static final int fillchar = '=';
    private static final String cvt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            + "abcdefghijklmnopqrstuvwxyz"
            + "0123456789+/";

    public static void main(String[] args) {
//        String a = "a100001";
//        System.out.println(encodeBase64(a));
        String str = "jsadlfj  ftp://www.google.com    jadslf ";
        str += "<img \r  src=\"http://192.168.0.6/lawton2/newspic/163_1.jpg\"></img>";
        str += "!@$#中文\r" +
                "<img src=\"http://61.191.24.183/dog.gif\"></img>";
//        System.out.println(getHtmlFormat(str));
  //      System.out.println(getTimeString(12.99f));
    }


    /**
     * 将以小时为单位的时间对应的时间字符串(xx小时xx分钟)
     * @param fTime
     * @return
     */
    static public String getTimeStringM(float fTime){
        if(fTime<0){
            fTime=0;
        }

        String strTime="";
        int time=(int)fTime;
     //   int iTime = (int)fTime;
//        strTime+=time/60+"小时";
//        if(time%60 > 0){
//            strTime += time%60+"分钟";
//        }
        strTime += time+"小时";
        if((fTime - time) > 0.000000001){
            time = (int)((fTime - time) * 60 + 0.5);
            if(time > 0)
                strTime += time+"分钟";
        }
        return strTime;
    }
   /**
    * 根据传入的字符串,和长度截取字符串
    * @param str
    * @return
    */
    static public String cutString(String strname,int i){
        String strname0="",strname1="",strname2="",strname3="";
        int kk=0;
        strname0=strname;
        strname3=strname;
		  while(!strname0.equals("")){
		    if(kk<i){
		       
		       strname1=strname0.substring(0,1);
		       kk=kk+(strname1.getBytes()).length;				       
		              
            }else{
            
              break;
            }
        if(kk<=i)
            strname2=strname2+strname1;
        strname0=strname0.substring(1);	
        }
      if(strname3.getBytes().length>i)
          strname0=strname2+"..";
      else
          strname0=strname3;
        
        return strname0;
        
    }
    static public String getHtmlFormat(String str) {

       // Grammar parser = new Grammar(new ByteArrayInputStream(str.getBytes()));
        //String ret = str;
     /*   try{
            ret = parser.ParseString();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return ret; */

/*
        str = str.replaceAll("<", "&lt;");
        str = str.replaceAll(">", "&gt;"); */

        //处理<img >
        str = str.replaceAll("&lt;img","<img");
        str = str.replaceAll("&lt;/img&gt;","</img>");
        int imgStart = str.indexOf("<img");
        int imgEnd = imgStart;
        while(imgStart >=0){
            imgEnd = str.indexOf("&gt;", imgStart);
            str = str.substring(0, imgEnd) + ">" + str.substring(imgEnd + 4);
            imgStart = str.indexOf("<img", str.lastIndexOf(">"));
        }

        //处理回车
        char[] myBuffer = str.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            int s = (int) myBuffer[i];
            //turn enter to <br>
            if (s == 13)
                sb.append("<br>");
            else if (s==10)
                sb.append("");
            else if (s == 32)
                sb.append("&nbsp;");
            else
                sb.append(str.charAt(i));
        }
        str = sb.toString();
        //处理超链接
        int start,end, end1, end2;
        String pre, suf, mid;
        start = str.indexOf("http://", 0);
//        System.out.println("str = "+str);
        while(start >= 0 && start < str.length()){
            imgStart = str.lastIndexOf("<img", start);
            if(imgStart >= 0){
                imgEnd = str.indexOf("</img>", imgStart);
            }
//            System.out.println("imgStart = "+imgStart+" start = "+start+"imgEnd = "+imgEnd);
            if(imgStart < start && start < imgEnd){
                start = str.indexOf("http://", start + 7);
                continue;
            }

            end1 = str.indexOf("&nbsp;", start);
            end2 = str.indexOf("<br>", start);
            if(end1 < 0 && end2 < 0){
                end = str.length();
            }else{
                end = end1<end2 && end1>=0 || end2 < 0? end1 : end2;
            }

            pre = str.substring(0, start);
            if(end == str.length()){
                mid = str.substring(start, end);
                suf = "";
            }else{
                mid = str.substring(start, end);
                suf = str.substring(end);
            }
                str = pre + "<a href=\"javascript:openwindow('" + mid  +"', '',600, 600);\">" + mid + "</a>" + suf;
            start = str.indexOf("http://", str.lastIndexOf("</a>"));
        }

        start = str.indexOf("ftp://", 0);
        while(start >= 0 && start < str.length()){
            imgStart = str.lastIndexOf("<img", start);
            if(imgStart >= 0){
                imgEnd = str.indexOf("</img>", imgStart);
            }
//            System.out.println("imgStart = "+imgStart+" start = "+start+"imgEnd = "+imgEnd);
            if(imgStart < start && start < imgEnd){
                start = str.indexOf("ftp://", start + 6);
                continue;
            }

            end1 = str.indexOf("&nbsp;", start);
            end2 = str.indexOf("<br>", start);
            if(end1 < 0 && end2 < 0){
                end = str.length();
            }else{
                end = end1<end2 && end1>=0 || end2 < 0? end1 : end2;
            }

            pre = str.substring(0, start);
            if(end == str.length()){
                mid = str.substring(start, end);
                suf = "";
            }else{
                mid = str.substring(start, end);
                suf = str.substring(end);
            }
            str = pre + "<a href=\"javascript:openwindow('" + mid  +"', '',600, 600);\">" + mid + "</a>" + suf;
            start = str.indexOf("ftp://", str.lastIndexOf("</a>"));
        }


        //还原html元素中的空格
        start = str.indexOf("<");
        end = str.indexOf(">");
        while(start>=0 && end>=0 && start < end){
            str = str.substring(0, start) + str.substring(start, end).replaceAll("&nbsp;"," ") + str.substring(end);
            start = str.indexOf("<",start+1);
            end = str.indexOf(">", start);
        }

        return str;

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -