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

📄 cgutils.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.codegen;/** * Generic code-generation utilities, useful for creating unit tests. * @author Ken Larson * */public class CGUtils{	public static String toLiteral(byte[] ba)	{		if (ba == null)			return "null";		else		{			StringBuffer buf = new StringBuffer();			buf.append("new byte[] {");			for (int i = 0; i < ba.length; ++i)			{	if (i > 0)					buf.append(", ");				buf.append("(byte)" + (int) ba[i]);							}			buf.append("}");			return buf.toString();		}			}		public static String toLiteral(int[] ba)	{		if (ba == null)			return "null";		else		{			StringBuffer buf = new StringBuffer();			buf.append("new int[] {");			boolean first = true;			for (int i = 0; i < ba.length; ++i)			{	final int b = ba[i];				if (first)					first = false;				else					buf.append(",");				buf.append("" + (int) b);			}			buf.append("}");			return buf.toString();		}			}		public static String toHexLiteral(int v)	{		return "0x" + Integer.toHexString(v);	}		public static String toLiteral(float v)	{		return "" + v + "f";	}		public static String toLiteral(long v)	{		return "" + v + "L";	}		public static String toLiteral(int v)	{		return "" + v;	}		public static String toLiteral(double v)	{		return "" + v;	// TODO	}		public static String toLiteral(String s)	{		if (s == null)			return "null";		return "\"" + replaceSpecialJavaStringChars(s) + "\"";	}	    public static String replaceSpecialJavaStringChars(String raw)    {    	// TODO: non-printable characters.        if (raw == null) 		{            return null;        }        final StringBuffer buf = new StringBuffer();        for (int i = 0; i < raw.length(); ++i) 		{            char c = raw.charAt(i);			if (c == '\"') 				buf.append("\\\"");			else if (c == '\'') 				buf.append("\\\'");			else if (c == '\\') 				buf.append("\\\\");			else if (c == '\r') 				buf.append("\\r");			else if (c == '\n') 				buf.append("\\n");			else if (c == '\t') 				buf.append("\\t");			else if (c == '\f') 				buf.append("\\f");			else if (c == '\b') 				buf.append("\\b");			else if (c == (char) 0) 				buf.append("\\000");				            else 			{                buf.append(c);            }        }        return buf.toString();    }    	public static String toNameDotClass(Class c)	{		if (c == null)			return null;		return toName(c) + ".class";	}				static String toName(Class c)	{		if (c == int.class)			return "int";		else if (c == boolean.class)			return "boolean";		else if (c == short.class)			return "short";		else if (c == byte.class)			return "byte";		else if (c == char.class)			return "char";		else if (c == float.class)			return "float";		else if (c == double.class)			return "double";				else if (c == long.class)			return "long";				else if (c == byte[].class)			return "byte[]";			else if (c == int[].class)			return "int[]";			else if (c == short[].class)			return "short[]";			else if (c == double[].class)			return "double[]";		else if (c == float[].class)			return "float[]";				else if (c == long[].class)			return "long[]";				else if (c == boolean[].class)			return "boolean[]";				else if (c == char[].class)			return "char[]";				else if (c.isArray())			return "" + toName(c.getComponentType()) + "[]";		else			return "" + c.getName() + "";	}			/**	 * Dump to string using a debugger-like format - both hex and ascii.	 */	public static String dump(byte[] bytes, int offset, int byteslen)	{		final StringBuffer b = new StringBuffer();				final int width = 32;		int len = width;		while (offset < byteslen)		{			int remainder = 0;						if (offset + len > byteslen)			{	len = byteslen - offset;				remainder = width - len;			}			b.append(byteArrayToHexString(bytes, len, offset));			for (int i = 0; i < remainder; ++i)			{				b.append("  ");			}			b.append(" | ");			for (int i = 0; i < len; ++i)			{				byte c = bytes[offset + i];				if (c >= ' ' && c <= '~')				{	b.append((char) c);				}				else					b.append('.');			}						b.append('\n');			offset += len;					}		return b.toString();	}		public static String byteArrayToHexString(byte [] array)	{		return byteArrayToHexString(array, array.length);	}	public static String byteArrayToHexString(byte [] array, int len)	{	return byteArrayToHexString(array, len, 0);	}	public static String byteArrayToHexString(byte [] array, int len, int offset)	{			StringBuffer b = new StringBuffer();		for (int i = 0; i < len; ++i)		{	String byteStr = Integer.toHexString(uByteToInt(array[offset + i]));			if (byteStr.length() == 1)				byteStr = "0" + byteStr;			b.append(byteStr);		}		return b.toString();			}		private static final int MAX_BYTE_PLUS1 = 256;		// because java does not support unsigned bytes, we can use this function to 	// treat a byte as unsigned.	// TODO: duplicated in UnsignedUtils	public static int uByteToInt(byte b)	{	if (b >= 0)			return b;		else			return MAX_BYTE_PLUS1 + b;	}		public static byte[] hexStringToByteArray(String s)	{		byte[] array = new byte[s.length() / 2];		for (int i = 0; i < array.length; ++i)		{	array[i] = hexStringToByte(s.substring(i * 2, i * 2 + 2));		}		return array;	}		public static byte hexStringToByte(String s)	{	return (byte) Integer.parseInt(s, RADIX_16);	}		private static final int RADIX_16 = 16;}

⌨️ 快捷键说明

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