public class stringFormat {
public static void main (String args[]){
String string = "10000";
String st="计算机网络";
System.out.print(String.format("%-20s", string));
System.out.println("hello world !");
System.out.print(String.format("%-20s", st ));
System.out.print("hello world!");
}
}我要其能对齐输出,该怎么做呢?
public static void main (String args[]){
String string = "10000";
String st="计算机网络";
System.out.print(String.format("%-20s", string));
System.out.println("hello world !");
System.out.print(String.format("%-20s", st ));
System.out.print("hello world!");
}
}我要其能对齐输出,该怎么做呢?
解决方案 »
- array和arrarcopy
- Swing处理图片的问题
- socket总是出错啊,我不行了,救我!!
- 【提问:关于串口】使用comm.jar 2.0版本,检测不到机子上的com口!
- 有个作业,希望大家进来看看,重谢!(数据从键盘录入,保存到文件中;并能按需要查询,查询结果显示在屏幕上。)在线等待!
- 求助,如何解释这段代码?
- 怎样初始化 i、j、k ?
- 自己开发的bean怎样生成java API文档(jbuild5)我在线等答对马上给分
- 数据库访问函数的调用问题--100分寻找高手救援,分数不够,可以在加,在线急,急,急,急。。。。。
- 再请问个java中泛型的问题
- java初学者问一个很弱弱的问题,java中一个类实现了2个接口的问题
- 为什么不能被通知
public static void main (String args[]){
String string = "10000";
String st="计算机网络";
System.out.print(String.format("%-20s\t\t", string));
System.out.println("hello world !");
System.out.print(String.format("%-20s\t", st ));
System.out.print("hello world!");
}
}
只是占 20 个 Unicode 字符,对于 Java 来说汉字是算一个字符的。如果带有汉字的话,就不能采用这种方式来进行输出。
public class Test { public static void main(String[] arguments) {
String string = "10000";
String st="计算机网络";
System.out.print(putString(string, 20, true));
System.out.println("hello world !");
System.out.print(putString(st, 20, true));
System.out.print("hello world!");
}
/**
* 输出指定宽度的字符串
*
* @param str 需要输出的原字符串
* @param totalLen 字符串的占位宽度(以半角宽度计算)
* @param isLeft 原字符串是否左对齐,true 左对齐,false 右对齐
* return
*/
public static String putString(String str, int totalLen, boolean isLeft) {
int len = getLength(str);
int diff = totalLen - len;
String space = diff > 0 ? generateManyChar(' ', diff) : "";
if(isLeft) {
return str + space;
}
return space + str;
} /**
* 生成多个字符
* @param c 需要生成的字符
* @param length 字符的个数
* @return length个字符组成的字符串
*/
private static String generateManyChar(char c, int length) {
if(length <= 0) {
return "";
}
char[] chs = new char[length];
for(int i = 0; i < length; i++) {
chs[i] = c;
}
return new String(chs);
} /**
* 获得一个字符串的长度,汉字算两个长度
* @param str
* @return 字符串的长度
*/
private static int getLength(String str) {
int length = 0;
char[] c = str.toCharArray();
for(int i = 0, k = c.length; i < k; i++) {
if(c[i] <= 0xff) {
length++;
}else{
length += 2;
}
}
return length;
}
}