关于空格显示的问题
package com.ut.test;
public class OutString {
/**
* @param args
*/
public static void main(String[] args) {
String str = "清新";
String str2 = "党风奉为";
System.out.println(formatString(str, 8));
System.out.println(formatString(str2,8));
}
/**
* 输出指定字节位数的字符串
* 所要输出的字节位数大于字符串的字节位数 补空格
* 所要输出的字节位数小于字符串的字节位数 则截取
*
* @param str
* 要处理掉字符串
* @param toCount
* 指定的字节位数
* @return
*/
public static String formatString(String str, int toCount) {
int reInt = 0;
StringBuilder reStr = new StringBuilder();
if (str == null)
return "";
char[] tempChar = str.toCharArray();
for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) {
String s1 = String.valueOf(tempChar[kk]);
byte[] b = s1.getBytes();
reInt += b.length;
reStr.append(tempChar[kk]);
}
if (toCount == reInt || (toCount == reInt - 1)) {
String result = reStr.toString();
return result;
}
while (toCount > reInt) {
reStr.append(" ");
reInt++;
}
String result = reStr.toString();
return result;
}
}
为什么输出的字节位数一样 但是显示的长度不一致呢
难道是空格的占位问题?求高手赐教!
------解决方案--------------------你的程序没问题,一个输出8位,一个是9位
------解决方案--------------------UTF-8的一个汉字占3个字节,ISO-8859-1的占2个字节
------解决方案--------------------楼上 +++++1