java中System.out.printf()中的输出长度如何用变量控制

在C和C++中可以用*引出变量,如
printf("%*.*s\n",m,n,ch);
前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。
可是JAVA中怎么用?

比如你有一个变量int a, 还有打算输出的字符串s;
想用printf输出长度为a 的字符串;
可以System.out.printf("%"+a+"s",s);
希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-01-24
printf("%8.2s\n","abcd","ef","gh");//表示格式化的字符串输出时占8个字宽度,截取前2个字符显示,后面两个没用

//结果: ab追问

不是问这个啊,我是说定义一个变量,使输出长度为这个变量,不是直接把长度定为常数

追答

String a = "4.2";
System.out.printf("%"+a+"s\n", "abcdefg"); 这样不就行了吗

追问

那举个例子:
int a;
我现在要让接下来输出的东西有a这么长,因为我需要的a是会变,怎样让System.out.printf()认出来a的大小

追答

a的大小? a这么长?什么意思?是 a.length还是a的值呢。a.length的话String.valueOf(a).length()

追问

多谢,是a的值,String.valueOf(a)解决了

本回答被提问者采纳
第2个回答  2013-05-12
string.format追问

如果是输出整数呢,也行吗?

第3个回答  2018-01-24
将变量x用String.valueOf(x)转换成字符串即可,如下:

int x = 8;
System.out.printf("%"+String.valueOf(x)+"s\n",sssssssssssssss);
相似回答