java规定字符串长度,不够补白

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java规定字符串长度,不够补白相关的知识,希望对你有一定的参考价值。

比如String w=“Hello”;要求按10个字符大小输出为
hello·····
要调用一个方法实现。
在输入到文件时字符大小时定长的。(即不等长的字符串在文件中显示的时候时按一定格式对齐)

String title="ABC公司工资报表(2004年12月)";
String separator="-----------------------------------------------------------------------------------------------------------------------";
String t1="部 门 ";
String t2="人 数";
String t3="基本工资";
String t4="职位工资";
String t5="职称工资";
String t6="工龄工资";
String t7="应付小计";
String t8="保险";
String t9="房积";
String t10="应扣小计";
String t11="所得税";
String t12="合计";

String name="供应科";
Integer i1=4;
Double d1=4800.0;
Double d2=800.0;
Double d3=1200.0;
Double d4=1600.0;
Double d5=18800.0;
Double d6=800.0;
Double d7=1200.0;
Double d8=1880.0;
Double d9=5880.0;
Double d10=12920.0;
/**
----------------------------------------------------------------------------------------------------------
部 门 人 数 基本工资 职位工资 职称工资 工龄工资 应付小计 保险 房积 应扣小计 所得税 合计
----------------------------------------------------------------------------------------------------------
供应科 4 4800 800 1200 1600 18800 800 1200 1880 5880 12920
----------------------------------------------------------------------------------------------------------
市场处 6 7200 1200 1800 2400 28200 1200 1800 2820 8820 19380
----------------------------------------------------------------------------------------------------------
销售处 7 8400 1400 2100 2800 32900 1400 2100 3290 10290 22610
----------------------------------------------------------------------------------------------------------
行政处 4 4800 800 1200 1600 18800 800 1200 1880 5880 12920
合计 25 30400.0 5000.0 7500.0 10000.0 117900.0 5000.0 7500.0 11790.0 36790.0 81110.0
----------------------------------------------------------------------------------------------------------
*/
PrintWriter pw=new PrintWriter("d:/out.txt");
pw.printf("\n\n%60s\n", title);
pw.println("\n"+separator+"\n");
pw.printf("%-7s%-7s%-7s%-7s%-7s%-7s%-7s%-7s%-7s%-7s%-7s%-7s",t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12);
pw.println("\n"+separator+"\n");
pw.printf("%-6s%-8d%-10.0f%-10.0f%-10.0f%-10.0f%-10.0f%-10.0f%-10.0f%-10.0f%-10.0f%-10.0f",name,i1,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10);
pw.println("\n"+separator+"\n");

name="合计";
i1=25;
d1=30400.0;
d2=5000.0;
d3=7500.0;
d4=10000.0;
d5=117900.0;
d6=5000.0;
d7=7500.0;
d8=11790.0;
d9=36790.0;
d10=81110.0;

pw.printf("%-7s%-8d%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f%-10.1f",name,i1,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10);
pw.println("\n"+separator);
pw.close();

参考资料:还有其他问题的话,给我发百度消息

参考技术A 有两种办法:

public String format (String w)
char[] str = ' ',' ',' ',' ',' ',' ',' ',' ',' ',' '; //10 个空格(如果你说的“补白”是补空格的意思).

for (int i=0; i<w.length() && i<str.length; i++)
str[i] = w.charAt(i);

//把字符逐个拷贝进去,超过的部分会截除,不足的部分就是空格.

return new String(str);


-------------------------------------------------------------------
public void format (String w)
if (w.length() > 10)
w = w.substring(0, 10);
else if (w.length() < 10)
for (int i=w.length(); i<10; i++)
w += " ";
参考技术B publick String getString(int length,String inputString)

String blank="";

if (inputString.length()>= length)

return inputString;

else

for(int i=0;i<length-inputString.length();i++)
blank.append(".");


return inputString+blank;





大概的写了下 没有开IDE 思路就那样的 你调下吧
参考技术C 我也没明白哦,是做个方法是要填补么?
public String a(String a)
int b=a.length();
String c="";
for(int i=0;i<10-b;i++ )
c+=a+"(需要填充的东西,空格或点)";

return c;

不知道是不是你要的~ 不是刻意补充
参考技术D 不太明白你什么意思。你可以单独百度Hi。具体说下。

C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白

1. 控制数据格式

定义在iomapip中的操作符

操作符 描述
setfill(ch) 用ch填充空白
setprecision(ch) 将浮点精度设置为n
setw(ch) 读或写值的宽度为w个字符
setbase(ch) 将整数输出被b进制

1.1 setw

setw 指定下一个数字或字符串值的最小空间。
• left 表示左对齐输出。
• right 表示右对齐输出, 右对齐是默认格式。
• internal 控制负数的符号的位置, 它左对齐符号, 右对齐值, 用空格填满所有中 <7591
间空间。
• setfill 允许指定一个字符代替默认的空格来补白输出

eg.

int i = -16;
double d = 3.14159;

cout << "i: " <<setw (12) «i<<"next col" «' \\n'
<< "d: ’’ << setw (12) << d << "next col" << ’\\n’;

// 补白第一列, 左对齐所有列
cout << left <<"i: " << setw (12) << i << "next col" << ’\\n’  << "d: " << setw (12) << d << "next col" << ’\\n’
<< right; // 恢复正常对齐

// 补白第一列 , 右对齐所有列
cout << right << "i: " << setw (12) << i <<"next col" <<’\\n’<<"d: " << setw (12) << d << "next col" <<’\\n’;

// 补白第一列, 但补在域的内部
cout <<internal << "i:" << setw (12)<< i << "next col" <<’\\n’
<< "d: " << setw (12) << d << "next col" <<’\\n’;

// 补白第一列, 用#作为补白字符
cout << setfill(#)
<<"i: " <<setw (12) << i << "next col" <<r\\nr
<<"d: " <<setw (12) << d <<"next col" <<r \\nf
<<setfill(' ') // 恢 复 正 常 的 补 白 字 符

eg.

#include <iomanip>

    int i = -16;
	double d = 3.1415926;
    // 补白第一列, 使用输出中最小 12 个位置
    // 补白第一列, 左对齐所有列
	cout << left
		<<"i: " << setw(12) << i <<"    next col" << '\\n'
		<<"d: " << setw(12) << d<< "    next col" <<
		endl;

     // 补白第一列 , 右对齐所有列
	cout << right
		<< "i: " << setw(12) << i << "    next col" << '\\n'
		<< "d: " << setw(12) << d << "    next col" <<
		endl;

     // 补白第一列, 但补在域的内部
	cout << internal
		<< "i: " << setw(12) << i << "    next col" << '\\n'
		<< "d: " << setw(12) << d << "    next col" <<
		endl;

    // 补白第一列, 用#作为补白字符
	cout << setfill('#')
		<< "i: " << setw(12) << i << "    next col" << '\\n'
		<< "d: " << setw(12) << d << "    next col" <<
		endl;
 
	cout« setfill(' '); // 恢 复 正 常 的 补 白 字 符







 

以上是关于java规定字符串长度,不够补白的主要内容,如果未能解决你的问题,请参考以下文章

Java对类名长度有限制吗?

自动补充方法:当字符串长度不够需要自动补充到一定的位数

C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后输出?

mysql的text字段长度 mysql数据库中text字段长度不够的问题

C语言如何将一个字符串按照规定长度分解为几个字符串

java截取汉字字符串问题