`
kidiaoer
  • 浏览: 822053 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

java字符操作及转码

阅读更多

import java.util.*;
import java.text.*;
import java.lang.*;
import sun.io.*;

public class DealString
{

public long makeID ( int uid )
{
   //用户占5位
   uid += 10000 ;
  
   //时间占9位:秒,去掉第一位
   java.util.Date time = new java.util.Date();
   long second = time.getTime() / 1000 ;
   String str = second + "" ;
   str = str.substring(1,str.length());

   //群发占5位
   str = uid + str + 10000 ;
         
   return Long.parseLong(str);
}

/**把null转化为""*/
public String toString(String str)
{
   if(str==null)str = "";
   if(str.equals("null"))str = "";
   str = str.trim();
   return str;
}

/**转换编码*/
public String toGBK(String str)
{
   try
   {
    if(str==null)
     str = "";
    else
     str=new String(str.getBytes("ISO-8859-1"),"GBK");
   }catch (Exception e) {System.out.println("DealString::toGBK(String)运行时出错:错误为:"+e);}
   return str;
}

public String toMKByte(int size)
{
   if(size>(1024*1024)){return ((float)size/(1024*1024)+"").substring(0,4)+"MB";}
   else if(size>1024){return ((float)size/1024+"").substring(0,4)+"KB";}
   else return size+"B";
}

/**UTF8*/
public String toUtf8String(String src)
{
   byte[] b = src.getBytes();
   char[] c = new char[b.length];
   for(int i=0;i<b.length;i++)
   {
    c[i] = (char)(b[i]&0x00FF);
   }
   return new String(c);
}

public String toASCII(String str)
{
   try
   {
    if(str==null)
     str = "";
    else
     str=new String(str.getBytes("GBK"),"ISO-8859-1");
   }catch (Exception e) {System.out.println("DealString::toGBK(String)运行时出错:错误为:"+e);}
   return str;
}
/**分割字符串*/
public String[] splitStr(String str,char c)
{
   str+=c;
   int n=0;
   for(int i=0;i<str.length();i++)
   {
    if(str.charAt(i)==c)n++;
   }

   String out[] = new String[n];

   for(int i=0;i<n;i++)
   {
    int index = str.indexOf(c);
    out[i] = str.substring(0,index);
    str = str.substring(index+1,str.length());
   }
   return out;
}

/**取得系统时间*/
public String getDateTime()
{
   java.text.SimpleDateFormat f = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
   String time = f.format(new java.util.Date());
   return time;
}

/**替换字符串*/
public String Replace(String source, String oldString, String newString)
{
       StringBuffer output = new StringBuffer();

       int lengthOfSource = source.length();   // 源字符串长度
       int lengthOfOld = oldString.length();   // 老字符串长度
       int posStart = 0;   // 开始搜索位置
       int pos;            // 搜索到老字符串的位置

       while ((pos = source.indexOf(oldString, posStart)) >= 0) {
           output.append(source.substring(posStart, pos));
           output.append(newString);
           posStart = pos + lengthOfOld;
       }
       if (posStart < lengthOfSource) {
           output.append(source.substring(posStart));
       }
       return output.toString();
}

/**取得两个日期的天数之差*/
public long getDaysInterval(Date d1,Date d2)
{
   return (d2.getTime()-d1.getTime())/86400000;
}

/**将字符串格式化为固定长度*/
public String toLengthStr(String instr,int len)
{
   int n = instr.length();
   for(int i=0;i<(len-n);i++)
   {
    instr = " "+instr;
   }
   return instr;
}
/**将字符串格式化为固定长度(右边补空格)*/
public String toLengthStrRight(String instr,int len)
{
   int n = instr.length();
   for(int i=0;i<(len-n);i++)
   {
    instr = instr+" ";
   }
   return instr;
}
/*ASCII转化为字符串*/
public String AsciiToChineseString(String s)
{
   char[] orig = s.toCharArray();
   byte[] dest = new byte[orig.length];
   for (int i=0;i<orig.length;i++)
   dest[i] = (byte)(orig[i]&0xFF);
   try
   {
    ByteToCharConverter toChar = ByteToCharConverter.getConverter("gb2312");
    return new String(toChar.convertAll(dest));
   }
   catch (Exception e)
   {
    System.out.println("DealString::AsciiToChineseString(String)运行时出错;错误为:"+e);
    return s;
   }
}

/**字符串转化为ASCII*/
public String ChineseStringToAscii(String s)
{
   try
   {
    CharToByteConverter toByte = CharToByteConverter.getConverter("gb2312");
    byte[] orig = toByte.convertAll(s.toCharArray());
    char[] dest = new char[orig.length];
    for (int i=0;i<orig.length;i++)
     dest[i] = (char)(orig[i] & 0xFF);
    return new String(dest);
   }
   catch (Exception e)
   {
    System.out.println("DealString::ChineseStringToAscii(String)运行时出错:"+e);
    return s;
   }
}

/**Unicode转化成GB的源码*/
public String UnicodetoGB(String s)
{
   StringBuffer sb = new StringBuffer();
   boolean escape = false;
   for(int i=0; i<s.length(); i++)
   {
    char c = s.charAt(i);
    switch (c)
    {
     case '\\': escape = true; break;
     case 'u':
     case 'U':
     if(escape)
     {
      try
      {
       sb.append((char)Integer.parseInt(s.substring(i+1,i+5),16));
       escape = false;
      }
      catch(NumberFormatException e)
      { System.out.println("DealString::UnicodetoGB(String)运行时出错:"+e+"并抛出新的 IllegalArgumentException异常.");
       throw new IllegalArgumentException();
      }
      i += 4;
     }
     else
     {   
      sb.append(c);
     }
     break;
     default:sb.append(c); break;
    }
   }
   return sb.toString();
}
/*将str中重复的去掉*/
public String strDistinct(String str)
{
   String[] strArr=str.split(",");
   String   strAim = ",";
   for(int i=0;i<strArr.length;i++)
   {
    if(strArr[i].equals(""))
     continue;
    if (strAim.indexOf(","+strArr[i]+",")==-1)
    {
     strAim = strAim + strArr[i] + ",";
    }
   }
   if(!strAim.equals(","))
   strAim = strAim.substring(1,strAim.length()-1);
   else strAim = "";
   return strAim;
}

/**字符转化为ASCII*/
public int toASCII(char c)
{
   int i = c;
   return i;
}

/**取得字符字节长度*/
public int byteLength(String str)
{
   return ((str.getBytes()).length);
}

/**取得字符串从头开始指定长度子串*/
public String strByteCopy(String str,int nEnd)
{
   if(nEnd==0)
    return "";
   byte[] byteStr=str.getBytes();
   int k=byteStr.length;
   String strSub=new String(byteStr,0,nEnd<k?nEnd:k);
   if (strSub.length()==0) strSub=new String(byteStr,0,nEnd-1);
   return strSub;
}
        public boolean strMatch(String motherStr,String childStr)
        {
          boolean matched=false;
          int mLength=motherStr.length();
          int cLength=childStr.length();
          int starWith;
          if(mLength>=cLength){
            starWith=mLength-cLength;
            for(int i=0;i<=starWith;i++){
              matched=motherStr.startsWith(childStr,i);
              if(matched)break;
            }
          }
          return matched;
        }
/*

//把字符串转化为以UTF8编码
public static String toUtf8String(String s) {
                 StringBuffer sb = new StringBuffer();
                 for (int i=0;i<s.length();i++) {
                   char c = s.charAt(i);
                   if (c >= 0 && c <= 255) {
                     sb.append(c);
                   }
                   else {
                     byte[] b;
                     try {
                       b = Character.toString(c).getBytes("utf-8");
                     }
                     catch (Exception ex) {
                       System.out.println(ex);
                       b = new byte[0];
                     }
                     for (int j = 0; j < b.length; j++) {
                       int k = b[j];
                       if (k < 0)
                         k += 256;
                       sb.append("%" + Integer.toHexString(k).
                                 toUpperCase());
                     }
                   }
                 }
                 return sb.toString();
       }
*/
public Vector simplify(String[] str){
   Vector vect = new Vector();
   for(int i=0;i<str.length;i++)
    vect.add(str[i]);
   for(int i=0;i<vect.size();i++){
    String[] s1 = ((String)vect.get(i)).split("_");
    for(int j=i+1;j<vect.size();){
     boolean out = true;
     String[] s2 = ((String)vect.get(j)).split("_");
     for(int k=0;k<s1.length;k++){
      if(!s1[k].equals(s2[k])&&!s1[k].equals("0")){
       out = false;
       break;
      }
     }
     if(out)
      vect.remove(j);
     else
      j++;
    }
   }
   return vect;
}
public Vector simplify(Vector vstr){
   Vector vect = new Vector();
   for(int i=0;i<vstr.size();i++)
    vect.add(vstr.get(i));
   for(int i=0;i<vect.size();i++){
    String[] s1 = ((String)vect.get(i)).split("_");
    for(int j=i+1;j<vect.size();){
     boolean out = true;
     String[] s2 = ((String)vect.get(j)).split("_");
     for(int k=0;k<s1.length;k++){
      if(!s1[k].equals(s2[k])&&!s1[k].equals("0")){
       out = false;
       break;
      }
     }
     if(out)
      vect.remove(j);
     else
      j++;
    }
   }
   return vect;
}

public static void main(String args[]) throws Exception
{
   DealString mb = new DealString();
   System.out.println("begin\r\n\r\n");
   System.out.println(mb.makeID(2345));
   System.out.print("\rggggggggggggggg");
   System.out.println("\rend                 ");
}
};

分享到:
评论

相关推荐

    前后台字符集转码.txt

    根据提供的文件信息,本文将详细解析前后台字符集转码的相关知识点,包括字符集的基本概念、前后端如何处理字符集转码以及示例代码中的具体实现。 ### 字符集的基本概念 在计算机科学中,字符集(Character Set)...

    java字符串编码转换

    ### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...

    java转码

    在Java编程语言中,"转码"通常指的是字符编码转换,这是处理文本数据时非常重要的一个环节。字符编码决定了字符如何在计算机内部表示,常见的编码有ASCII、GBK、UTF-8等。不同的编码格式适用于不同的场景,因此在...

    Java 程序转码(UTF-8)

    ### Java程序转码(UTF-8):详细解析与实现 #### 一、引言 在处理文本数据时,字符编码是一项重要的技术基础。不同系统、不同语言环境下的字符编码可能不一致,这就需要进行字符编码转换以确保数据正确显示和处理...

    jvm字符转码

    4. **国际化(Internationalization)**:为了支持多语言环境,Java提供了`java.nio.charset`包,其中包含了各种字符编码类,如`Charset`, `CharsetDecoder`和`CharsetEncoder`,方便进行字符转码操作。 5. **异常...

    java的api中文转码示例

    本文将深入探讨如何使用Java API进行中文转码,以方便URL传参和其他应用。 首先,中文字符在计算机中存储时通常采用Unicode编码,而URL参数通常要求ASCII编码,这就涉及到字符编码的转换。在Java中,我们可以使用`...

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    java任意音频格式转码

    1. **Java调用系统命令**:通过Java的Runtime类或者ProcessBuilder类,可以执行操作系统级别的命令,包括运行ffmpeg。例如,你可以构建一个包含ffmpeg转换命令的字符串,然后通过`Runtime.getRuntime().exec(command...

    java转码工具类

    ### Java转码工具类知识点详解 #### 一、概述 在Java开发中,经常会遇到不同编码格式的文件处理问题,特别是在处理国际化应用时,字符集的兼容性尤为重要。本篇文章介绍了一个Java批量转换文件编码的工具类——`...

    java字符转码的三种方法总结及实例

    在Java编程语言中,字符转码是一个常见的任务,特别是在处理多语言文本或与不同编码格式的文件交互时。本文将详细讲解Java中字符转码的三种主要方法,并通过实例进行说明。 1. **使用`String`类的构造器和`getBytes...

    java转码工具

    Java转码工具是一种基于Java语言开发的实用程序,主要用于处理字符编码问题,特别是将文本文件在GB2312和UTF-8编码格式之间进行转换。在计算机领域,字符编码是决定如何用二进制数据表示字符的标准,不同的编码方式...

    关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    ### 关于JAVA字符编码:Unicode, ISO-8859-1, GBK, UTF-8 编码及相互转换 在Java开发过程中,字符编码是处理文本数据的基础,不同的编码方式会影响数据的存储、传输以及显示。本文将详细介绍几种常见的字符编码...

    java 字符工具类

    自己写的java字符工具类。主要有以下几个函数: public static String escape(String str,String charset):可以将以下格式的字符串

    java转码代码

    在Java编程语言中,"转码"通常是指在不同字符编码之间进行转换的过程,以解决乱码问题。乱码是由于文件或数据流在处理时使用了错误的字符集导致的。在这个场景下,"java转码代码"指的是用于解决Java程序中遇到的乱码...

    java上传调用ffmpeg转码截图截取视频

    本文将深入探讨如何使用Java调用FFmpeg进行视频上传、转码、获取时长、生成缩略图以及截取视频的流程。 首先,当我们面临一个视频上传的需求时,通常会创建一个Java Web服务接口,该接口接收客户端上传的视频文件。...

    java 写的字符编码转换工具(附带源码)

    通过研究这个字符编码转换工具,不仅可以提升对Java字符编码的理解,还可以学习到文件操作、错误处理、用户交互等方面的知识,对于提升Java编程技能大有裨益。同时,源码分析也有助于我们学习和借鉴优秀的编程实践,...

    java实现字符串处理组件-源代码

    在Java编程语言中,字符串处理是一项常见的任务,它涉及到对文本数据的各种操作,如编码转换、截取、加密和解密以及数值与字符串之间的转换。本组件提供了丰富的功能,简化了这些操作。以下是对该组件及其功能的详细...

    C#、java 字符流跨平台数据解压缩

    压缩的结果采用Base64编码,方便在Java端或者C#端打印出来调试,也方便在不同的应用间传输(如webservice),缺点是比转码前体积变大了约35% 字符串采用UTF-8编码获得byte数组,保证两端通用,如果应用对编码有要求...

    将字符串中的中文做UNICODE转码,非中文忽略

    将字符串中的中文做UNICODE转码,非中文忽略 简单实用 封装好了 直接用即可

    base64转码解密成明文加密成Java密文

    总的来说,Base64转码在Java中是一项基本操作,可以方便地处理二进制数据与文本数据之间的转换。同时,结合加密技术,我们可以创建安全的数据传输和存储方案。在开发过程中,了解并熟练运用这些工具,能够提升代码的...

Global site tag (gtag.js) - Google Analytics