📄 gfstring.java
字号:
return value;
}
/**
* 把字符串转化成固定长的字符串。如果不够指定的长度,在前面添加指定的字符; 如果大于指定的长度,把后面多出的去掉。
*
* @param str
* 要转换的字符串
* @param len
* 转换后的长度
* @param appendChar
* 添加的字符
* @return 转换后的字符串
*/
public static String getFixedLenStr(String str, int len, char appendChar) {
if (str == null || len < 0)
return null;
else {
int strLen = 0;
strLen = str.length();
if (len <= strLen) {
str = str + appendChar;
return str.substring(0, len);
} else {
for (int i = 0; i < len - strLen; i++)
str = appendChar + str;
return str;
}
}
}
/**
* 把一个二进制字符串的转化成一个整数
*
* @param bs
* 二进制字符串
* @return 二进制字符串表示的值
*/
public static long bin2long(String bs) {
long value = 0;
if (bs != null && bs.length() <= 64) {
byte[] b = bin2bytes(bs);
value = GFCommon.bytes2long(b);
}
return value;
}
public static String bin2hex(String bin) {
String hex = null;
if (bin != null && bin.length() <= 4) {
if (isBinstr(bin)) {
for (int i = 0; i < 4 - bin.length(); i++)
bin = "0" + bin;
hex = (String) map_bin2hex.get(bin);
}
}
return hex;
}
public static String bin2hexstr(String bin) {
String hex = null;
if (bin != null) {
if (isBinstr(bin)) {
int ys = bin.length() % 4;
for (int i = 0; ys != 0 && i < 4 - ys; i++)
bin = "0" + bin;
bin += "0";
hex = "";
for (int i = 0; i < bin.length() - 4; i += 4) {
String h = bin2hex(bin.substring(i, i + 4));
if (h != null) {
if (h.equals("0")) {
if (!hex.equals(""))
hex += h;
} else
hex += h;
}
}
if (hex.equals(""))
hex = "0";
}
}
return hex;
}
public static byte bin2byte(String bin) {
byte b = 0;
if (bin != null && bin.length() <= 8) {
if (isBinstr(bin)) {
String hex = bin2hexstr(bin);
b = hex2byte(hex);
}
}
return b;
}
public static byte[] bin2bytes(String bin) {
byte[] bs = null;
if (bin != null) {
String hex = bin2hexstr(bin);
bs = hexstr2bytes(hex);
}
return bs;
}
public static int bin2int(String bin) {
int value = 0;
if (bin != null && bin.length() <= 32) {
if (isBinstr(bin)) {
String hex = bin2hexstr(bin);
value = hexstr2int(hex);
}
}
return value;
}
public static boolean isBinstr(String bin) {
boolean result = false;
if (bin != null) {
byte[] b = bin.getBytes();
for (int i = 0; i < b.length; i++) {
if (b[i] != 48 && b[i] != 49)
return false;
}
return true;
}
return result;
}
/**
* 判断一个字符串是否是数字
*
* @param str
* @return
*/
public static boolean isNumeric(String str) {
if (str != null) {
try {
str = str.trim();
double d = Double.parseDouble(str);
d = d + 1;
return true;
} catch (NumberFormatException e) {
}
}
return false;
}
/**
* 判断字符串是否全是汉字
*
* @param str
* @return
*/
public static boolean isAllChinese(String str) {
if (str != null) {
str = quan2ban(str);
if (str != null) {
if (str.length() * 2 == str.getBytes().length)
return true;
}
}
return false;
}
/**
* 判断字符串是否全不是汉字
*
* @param str
* @return
*/
public static boolean isNoChinese(String str) {
if (str != null) {
str = quan2ban(str);
if (str != null) {
if (str.length() == str.getBytes().length)
return true;
}
}
return false;
}
/**
* 是否是字母
*
* @param str
* @return
*/
public static boolean isLetter(String str) {
if (str != null) {
byte b[];
str = str.trim();
b = str.toUpperCase().getBytes();
for (int i = 0; i < b.length; i++) {
if (b[i] < 65 || b[i] > 90)
return false;
}
return true;
}
return false;
}
/**
* 把一个整数转化成8位二进制字符串的表示形式
*
* @param value
* 0--256之间的整数
* @return 长度为8的二进制字符串
*/
public static String int2bin(int value) {
if (value >= 0 && value < 256) {
String bin = Integer.toBinaryString(value);
int len = bin.length();
for (int i = 0; i < 8 - len; i++)
bin = "0" + bin;
return bin;
}
return null;
}
/**
* 把表示数字含义的字符串转你成整形
*
* @param str
* 要转换的字符串
* @return 如果是有意义的整数,则返回此整数值。否则,返回-1。
*/
public static int cint(String str) {
if (str != null)
try {
int i = new Integer(str).intValue();
return i;
} catch (NumberFormatException e) {
}
return -1;
}
public static long clong(String str) {
if (str != null)
try {
return new Long(str).longValue();
} catch (NumberFormatException e) {
}
return -1;
}
/**
* 在一个字符串中取出指定的子字符串/
*
* @param str
* 字符串
* @param begin
* 开始位置,从0数起
* @param len
* 子字符串的长度
* @return 子字符串
*/
public static String substr(String str, int begin, int len) {
if (str == null)
return null;
else {
int strLen = 0;
strLen = str.length();
if (begin >= strLen)
return null;
else {
if (len > strLen)
return null;
else {
str += "0";
try {
return str.substring(begin, len);
} catch (IndexOutOfBoundsException e) {
return null;
}
}
}
}
}
/**
* 把字节数组转化成十六进制的字符串
*
* @param bs
*/
public static String bytes2hex(byte[] b) {
String result = "";
int value;
if (b != null && b.length > 0)
for (int i = 0; i < b.length; i++) {
value = (b[i] >>> 4) & 0x0F;
result += Integer.toHexString(value);
value = b[i] & 0x0F;
result += Integer.toHexString(value);
}
return result.toUpperCase();
}
/**
* 把UNICODE编码的字符串转化成汉字编码的字符串
*
* @param hexString
* @return
*/
public static String unicode2gb(String hexString) {
StringBuffer sb = new StringBuffer();
if (hexString == null)
return null;
for (int i = 0; i + 4 <= hexString.length(); i = i + 4) {
try {
int j = Integer.parseInt(hexString.substring(i, i + 4), 16);
sb.append((char) j);
} catch (NumberFormatException e) {
return hexString;
}
}
return sb.toString();
}
/**
* 把汉字转化成UNICODE编码的字符串
*
* @param gbString
* @return
*/
public static String gb2unicode(String gbString) {
String result = "";
char[] c;
int value;
if (gbString == null)
return null;
// if (gbString.getBytes().length == gbString.length())
// return gbString;
String temp = null;
c = new char[gbString.length()];
StringBuffer sb = new StringBuffer(gbString);
sb.getChars(0, sb.length(), c, 0);
for (int i = 0; i < c.length; i++) {
value = (int) c[i];
// System.out.println("[" + i + "]:" +value );
// System.out.println("hex:"+Integer.toHexString(value));
temp = Integer.toHexString(value);
result += fill(temp, 4);
}
return result.toUpperCase();
}
/**
* 如果字符串的长度没有达到指定的长度,则在字符串前加“0”补够指定的长度
*
* @param src
* 原先的字符串
* @param len
* 指定的长度
* @return 指定长度的字符串
*/
public static String fill(String src, int len) {
String result = null;
if (src != null && src.length() <= len) {
result = src;
for (int i = 0; i < len - src.length(); i++) {
result = "0" + result;
}
}
return result;
}
/**
* 在指定字符串插入到源字符串的指定位置
*
* @param src
* 源字符串
* @param insertStr
* 要插入的字符串
* @param index
* 要插入的位置
* @return 插入指定的字符之后的字符串
*/
public static String insert(String src, String insertStr, int index) {
String result = src;
if (src != null && insertStr != null) {
String temp = null;
if (index < 0) {
if (index * -1 > src.length())
result = insertStr + src;
else {
temp = src.substring(src.length() + index + 1);
result = src.substring(0, src.length() + index + 1) + insertStr + temp;
}
} else if (index >= src.length())
result = src + insertStr;
else {
temp = src.substring(index);
result = src.substring(0, index) + insertStr + temp;
}
} else if (src == null && insertStr != null)
result = insertStr;
return result;
}
/**
* 把相临的两个字符对换,字符串长度为奇数时最后加“F”
*
* @param src
* @return
*/
public static String interChange(String src) {
String result = null;
if (src != null) {
if (src.length() % 2 != 0)
src += "F";
src += "0";
result = "";
for (int i = 0; i < src.length() - 2; i += 2) {
result += src.substring(i + 1, i + 2);
result += src.substring(i, i + 1);
}
}
return result;
}
/**
* 把数组按指定的编码方式转化成字符串
*
* @param b
* 源数组
* @param encoding
* 编码方式
* @return
*/
public static String bytes2str(byte[] b, String encoding) {
String result = null;
int actualLen = 0;
byte[] ab;
if (b != null && b.length > 0) {
for (int i = 0; i < b.length; i++) {
if (b[i] == 0)
break;
actualLen++;
}
ab = GFCommon.bytesCopy(b, 0, actualLen);
try {
result = new String(ab, encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return result;
}
/**
* 把一个字符串按指定的长度分割
*
* @param intervalLen
* 间隔长度
* @return
*/
public static String[] split(String src, int intervalLen) {
String[] result = null;
int len = 0;
if (src != null && intervalLen > 0) {
len = src.length() / intervalLen;
if (src.length() % intervalLen != 0)
len++;
result = new String[len];
for (int i = 0, j = 0; i < len - 1; i++, j += intervalLen)
result[i] = src.substring(j, j + intervalLen);
result[len - 1] = src.substring((len - 1) * intervalLen);
}
return result;
}
/**
* 把字节数组转化成十六进制的字符串
*
* @param b
* @return
*/
public static String bytes2hexstr(byte[] b) {
return bytes2hexstr(b, false);
}
/**
* 把字节数组转化成十六进制的字符串
* <p>
*
* @param b
* @param highBitFirst
* true:高位优先,即输出的十六进制字符串是从Byte数组的最大下标开始的
* false:低们优先,即输出的十六进制字符串是从Byte数组的最小下标0开始的
* @return
*/
public static String bytes2hexstr(byte[] b, boolean highBitFirst) {
String result = null;
if (b != null && b.length > 0) {
if (highBitFirst) {
for (int i = b.length - 1; i >= 0; i--) {
String hex = GFString.byte2hex(b[i]);
if (result == null)
result = hex;
else
result += hex;
}
result = result.toUpperCase();
} else {
for (int i = 0; i < b.length; i++) {
String hex = GFString.byte2hex(b[i]);
if (result == null)
result = hex;
else
result += hex;
}
result = result.toUpperCase();
}
}
return result;
}
/**
* 把字节数组转化成十六进制的字符串
*
* @param b
* @return
*/
public static String bytes2hexstr(byte[] b, int len) {
String result = null;
if (b != null && b.length > 0 && len <= b.length) {
for (int i = 0; i < len; i++) {
String hex = GFString.byte2hex(b[i]);
if (result == null)
result = hex;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -