`
收藏列表
标题 标签 来源
精确截取字符串
/***
* 字符串的单个字符是否是汉字
* @param c
* @return
*/
public static int ascii(String c)
{
byte x[] = new byte[2];
x = c.getBytes();

if (null == x || x.length > 2 || x.length <=0)
{
return 0;
}

if( x.length == 1){ //英文字符
return x[0];
}

if (x.length == 2)
{
int hightByte = 256 + x[0];
int lowByte = 256 + x[1];
int ascii = (256 * hightByte + lowByte) - 256 * 256;
return ascii;
}

return 0;
}

/***
* 显示字符串的前N个字符
* 此处着重处理了英文字符和中文字符在显示上的一致性;
* 2个英文字符和一个汉字占据的宽度一致;
*/
public static String limitStr(String string, int size)
{
if (null != string)
{
string = goodStr(string);
if (string.length() <= size)
{
return string;
}
else
{
StringBuffer buffer = new StringBuffer();
double len = 0;
for (int i = 0; i < string.length(); i++)
{
//是否汉字 ascii<0
String str = string.substring(i,i+1);
if (ascii(str) < 0 )
{
buffer.append(str);
len ++ ;
}
else
{
buffer.append(str);
len = len + 0.5;
}

if (len >= size) break;
}
return buffer.toString();
}

}
return ""; 
}
Global site tag (gtag.js) - Google Analytics