%-4s
%-4s
是一个格式化字符串,通常用于编程中的字符串格式化操作。在这个格式化字符串中,%
是一个占位符,-
是一个标志,4
是最小字段宽度,s
表示要插入的值为字符串。
%
是用来表示要进行字符串格式化的位置。-
是一个标志,表示要左对齐文本,如果没有该标志,文本会默认右对齐。4
是字段的最小宽度,表示要输出的字符串至少占用 4 个字符的宽度。如果字符串不够长,会用空格在左边填充,以满足最小宽度的要求。s
表示要插入的值是一个字符串。
例如,如果你有一个字符串 "hello",并且使用 %-4s
进行格式化,结果会是:
"hello"
因为 "hello" 已经超过了最小宽度 4,所以没有额外的填充字符。如果你有一个更短的字符串,比如 "hi",结果会是:
"hi "
这里添加了两个空格字符来填充左边,以满足最小宽度 4 的要求。这个格式化字符串主要用于控制文本的输出格式,确保文本占据指定的最小宽度并采用指定的对齐方式。
//region 数据长度不满足截取的数据后面补空格
/**
* 数据长度不满足截取的数据后面补空格
* @param value
* @param length
* @return
*/
static String truncateField(String value, int length) {
StringBuilder sb = new StringBuilder(value.toString());
if (sb.length() < length) {
while (sb.length() < length) {
sb.append(" ");
}
} else if (sb.length() > length) {
sb.setLength(length);
}
return sb.toString();
}
//endregion
//region 数据长度不满足截取的数据后面补0
/**
* 数据长度不满足截取的数据后面补0
* @param value
* @param length
* @return
*/
static String truncateZeroField(String value, int length) {
StringBuilder sb = new StringBuilder(value.toString());
if (sb.length() < length) {
while (sb.length() < length) {
sb.append("0");
}
} else if (sb.length() > length) {
sb.setLength(length);
}
return sb.toString();
}
//endregion
//region 数据长度不满足截取的数据前面补空格
/**
* 数据长度不满足截取的数据前面补空格
* @param value
* @param length
* @return
*/
static String truncateFrontField(String value, int length) {
StringBuilder sb = new StringBuilder(value);
while (sb.length() < length) {
sb.insert(0, " ");
}
if (sb.length() > length) {
sb.setLength(length);
}
return sb.toString();
}
//endregion
//region 数据长度不满足截取的数据前面补0
/**
* 数据长度不满足截取的数据前面补0
* @param value
* @param length
* @return
*/
static String truncateFrontZeroField(String value, int length) {
StringBuilder sb = new StringBuilder(value);
while (sb.length() < length) {
sb.insert(0, "0");
}
if (sb.length() > length) {
sb.setLength(length);
}
return sb.toString();
}
//endregion