java规定字符串长度,不够补白
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java规定字符串长度,不够补白相关的知识,希望对你有一定的参考价值。
比如String w=“Hello”;要求按10个字符大小输出为
hello·····
要调用一个方法实现。
在输入到文件时字符大小时定长的。(即不等长的字符串在文件中显示的时候时按一定格式对齐)
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规定字符串长度,不够补白的主要内容,如果未能解决你的问题,请参考以下文章
C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后输出?