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();

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-22
有两种办法:

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 += " ";
}
第2个回答  2010-06-22
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 思路就那样的 你调下吧
第3个回答  2010-06-22
我也没明白哦,是做个方法是要填补么?
public String a(String a){
int b=a.length();
String c="";
for(int i=0;i<10-b;i++ ){
c+=a+"(需要填充的东西,空格或点)";
}
return c;
}
不知道是不是你要的~ 不是刻意补充
第4个回答  2010-06-22
不太明白你什么意思。你可以单独百度Hi。具体说下。

java规定字符串长度,不够补白
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="供应科...

JAVA怎么对字符串进行左填充呀?可以直接用print来实现么?比如我想把...
可以将字符串转换为整数 int a = Integer.parseInt("1011");print("%032d",a);

java字符串问题
首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2.new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3.String str=”kvill”;String str=new String (“...

java 日期 怎么 去零
public static void main(String[] args) { StringToDate std=new StringToDate();System.out.println(std.stringToDate("200901010000"));System.out.println(std.stringToDate("200901000000"));System.out.println(std.stringToDate("200901010000"));System.out.println(std.stringToDate("200910010...

Java如何让文本文件中的文字自动对齐?
在输入法不显示的情况下,按Ctrl+Shift+F

java 正则表达式"[^0-9\/\/.]+"与"[0-9\/\/.]+"分别是什么意思?
在不表示转义构造的任何字母字符前使用反斜线都是错误的;它们是为将来扩展正则表达式语言保留的。可以在非字母字符前使用反斜线,不管该字符是否非转义构造的一部分。根据 Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为 Unicode 转义或其他字符转义。因此必须在字符串字面值中...

java问题byte a=1,b=1;byte c=a+b;为什么错
在java中,对char, byte和short类型的字符串进行数学算法操作,比如+,-,>>位移操作,都会引发 自动类型提升,结果将是int类型,a+b的结果是int, 要将int的值赋给byte就必须进行类型强制转换。以下这句,是从think in java 3rd中摘出来的,希望对你有帮助。In char, byte, and short, you can ...

JAVA中:中英文混合的字符串按字节截取问题
可以写个小的算法,每次取这个范围内的字符判断,然后再取一半根据大小判断.比如:10000个可以先用substring截7500个字符(最少5000,最多10000,取一半),然后根据字节数大小,再按一半的方式进行截(如果比10000字节少,就取5000-7500中间的 ,如果多,就取7500-10000),依次类推就可以了,直到取得结果.这样应该...

Java语言的特点
首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员...

编写一个Java程序,它能产生从0~9的十个数字中随机取出4个不重复的数...
import java.util.Random;public class test{ public static void main(String[] args){ Random ran = new Random();StringBuffer sb = new StringBuffer();int i = 0;while(i < 4){ int t = ran.nextInt(9);if(sb.indexOf(String.valueOf(t)) == -1){ sb.append(t);i++;} ...

相似回答