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

📄 charchanges.java

📁 java环境下运行,对字符进行转化.很好的一个简短程序
💻 JAVA
字号:
package test;
import java.io.*;
public class Change2 {
	public static String toHexString(String s)  
	{  
		String str="";  
		for (int i=0;i<s.length();i++)  
		{  
				int ch = (int)s.charAt(i);  
				String s4 = Integer.toHexString(ch);  
				str = str + s4;
		}  
		return str;  
	}

//	 转化十六进制编码为字符串
	public static String toStringHex(String s)
	{
		byte[] baKeyword = new byte[s.length()/2];
		for(int i = 0; i < baKeyword.length; i++)
		{
			try
			{
				baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16));
		    }
		    catch(Exception e)
		    {
		    	e.printStackTrace();
		    }
		 }
		try
		{
			s = new String(baKeyword, "utf-8");//UTF-16le:Not
		}
		catch (Exception e1)
		{
			e1.printStackTrace();
		}
			return s;
	}

	public static void main(String[] args) 
	{
		System.out.println(encode("中文"));
		System.out.println(decode(encode("china")));
	}
		/*
		* 16进制数字字符集
		*/
	private static String hexString="0123456789ABCDEF";
		/*
		* 将字符串编码成16进制数字,适用于所有字符(包括中文)
		*/
	public static String encode(String str)
	{
	//	根据默认编码获取字节数组
		byte[] bytes=str.getBytes();
		StringBuilder sb=new StringBuilder(bytes.length*2);
	//	将字节数组中每个字节拆解成2位16进制整数
		for(int i=0;i<bytes.length;i++)
		{
			sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
			sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
		}
			return sb.toString();
		}
		/*
		* 将16进制数字解码成字符串,适用于所有字符(包括中文)
		*/
	public static String decode(String bytes)
	{
		ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
	//	将每2位16进制整数组装成一个字节
		for(int i=0;i<bytes.length();i+=2)
		baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
		return new String(baos.toByteArray()); 
	}
}

⌨️ 快捷键说明

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