// 下面是Groovy 语法,改成Java 语法即可
// 计算字符串字节,一个汉字两个字节
def static byteCount(String str) {
char[] charArray = str.toCharArray()
int count = 0;
for (char ch : charArray) {
if (ch >= 32 && ch < 127) {
count += 1;
} else {
count += 2;
}
}
return count;
}
// 生成空字节
def static blankSpace(int count) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < count; i++) {
sb.append((char) 32);
}
return sb.toString();
}
// 指定文本,指定宽度,不够宽度补空白字符
def static alignCenter(String text, int width) {
int textSize = byteCount(text);
if (width > textSize) {
StringBuilder sb = new StringBuilder();
int free = (width - textSize);
int f = free / 2;
int b = free - f;
sb.append(blankSpace(f)).append(text).append(blankSpace(b));
return sb.toString();
}
return text;
}
// 指定字符串宽度,超出指定宽度换行,产生新的字符串内容不变
def static splitString(String str, int size) {
char[] charArray = str.toCharArray()
List<String> list = new ArrayList<String>();
String tmp = StringUtils.EMPTY;
boolean flag = false;
for (int i = 0; i < charArray.length; i++) {
if ((byteCount(tmp) + byteCount(String.valueOf(charArray[i]))) <= size) {
flag = false;
tmp += charArray[i];
} else {
list.add(tmp);
tmp = StringUtils.EMPTY;
flag = true;
}
if (flag) {
tmp += charArray[i];
}
}
list.add(tmp);
return list;
}
Java 指定宽度 内容居中
最新推荐文章于 2021-08-16 20:54:51 发布