2进制转中文互转
package com.kingstar.mnReport.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @ClassName AsciiConvertUtil * @Description * @Author xinsen.liao * @Date 2020/6/10 16:13 */ public class AsciiConvertUtil { public static char ascii2Char(int ASCII) { return (char) ASCII; } public static int char2ASCII(char c) { return (int) c; } public static String ascii2String(int[] ASCIIs) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < ASCIIs.length; i++) { sb.append((char) ascii2Char(ASCIIs[i])); } return sb.toString(); } public static String ascii2String(String ASCIIs) { String[] ASCIIss = ASCIIs.split(","); StringBuffer sb = new StringBuffer(); for (int i = 0; i < ASCIIss.length; i++) { sb.append((char) ascii2Char(Integer.parseInt(ASCIIss[i]))); } return sb.toString(); } public static int[] string2ASCII(String s) {// 字符串转换为ASCII码 if (s == null || "".equals(s)) { return null; } char[] chars = s.toCharArray(); int[] asciiArray = new int[chars.length]; for (int i = 0; i < chars.length; i++) { asciiArray[i] = char2ASCII(chars[i]); } return asciiArray; } public static String getIntArrayString(int[] intArray) { return getIntArrayString(intArray, ","); } public static String getIntArrayString(int[] intArray, String delimiter) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < intArray.length; i++) { sb.append(intArray[i]).append(delimiter); } return sb.toString(); } public static String getASCII(int begin, int end) { StringBuffer sb = new StringBuffer(); for (int i = begin; i < end; i++) { sb.append(i).append(":").append((char) i).append("/t"); // sb.append((char) i).append("/t"); if (i % 10 == 0) { sb.append("/n"); } } return sb.toString(); } public static String getCHASCII(int begin, int end) { return getASCII(19968, 40869); } public static void showASCII(int begin, int end) { for (int i = begin; i < end; i++) { // System.out.print(i + ":" + (char) i + "/t"); System.out.print((char) i + "/t"); if (i % 10 == 0) { System.out.println(); } } } public static void showCHASCII() { showASCII(19968, 40869); } public static void showIntArray(int[] intArray) { showIntArray(intArray, ","); } public static void showIntArray(int[] intArray, String delimiter) { for (int i = 0; i < intArray.length; i++) { System.out.print(intArray[i] + delimiter); } } /* public static void createFile(String filePathAndName, String fileContent) throws IOException { String filePath = filePathAndName; filePath = filePath.toString(); File myFilePath = new File(filePath); if (!myFilePath.exists()) { myFilePath.createNewFile(); } FileWriter resultFile = new FileWriter(myFilePath); PrintWriter myFile = new PrintWriter(resultFile); String strContent = fileContent; myFile.println(strContent); myFile.close(); resultFile.close(); }*/ public static String convertStringToHex(String str){ char[] chars = str.toCharArray(); StringBuffer hex = new StringBuffer(); for(int i = 0; i < chars.length; i++){ hex.append(Integer.toHexString((int)chars[i])); } return hex.toString(); } public static String convertHexToString(String hex){ StringBuilder sb = new StringBuilder(); StringBuilder temp = new StringBuilder(); //49204c6f7665204a617661 split into two characters 49, 20, 4c... for( int i=0; i<hex.length()-1; i+=2 ){ //grab the hex in pairs String output = hex.substring(i, (i + 2)); //convert hex to decimal int decimal = Integer.parseInt(output, 16); //convert the decimal to character sb.append((char)decimal); temp.append(decimal); } return sb.toString(); } public static boolean containsNumOrLetter(String str) { String patt="[0-9|a-z|A-Z]"; Pattern r = Pattern.compile(patt); Matcher matcher = r.matcher(str); return matcher.find(); } public static void main(String[] args) { AsciiConvertUtil strToHex = new AsciiConvertUtil(); System.out.println("\n-----ASCII码转换为16进制 -----"); String str = ":"; System.out.println("字符串: " + str); String hex = strToHex.convertStringToHex(str); System.out.println("转换为16进制 : " + hex); System.out.println("\n***** 16进制转换为ASCII *****"); System.out.println("Hex : " + hex); System.out.println("ASCII : " + strToHex.convertHexToString("3A")); String s = "好好学习!天天向上!————笑的自然 2009年3月11日"; System.out.println("\n***** *****"); showIntArray(string2ASCII(s), " "); System.out.println(); System.out.println(ascii2String(string2ASCII(s))); } }
转:
https://blog.csdn.net/xxd851116/article/details/3981006?utm_source=blogxgwz7
https://www.cnblogs.com/jack-jt-z/p/10873685.html