java这几个字符串是怎么靠右对齐?怎么对齐不了?是怎么办?
因为有中文,占位符和字符串长度是不一致的。如果你都是英文字母和字符的话,这样写格式化输出没问题。中文的话,你可以先计算出GBK编码后的长度,然后再添加前导空格来对齐。
import java.io.UnsupportedEncodingException;
public class HelloWorld {
public static void main(String []args) {
try
{
String name1 = "海飞丝洗发水|";
name1 = new String(" ").substring(0,20 - name1.getBytes("GBK").length)+name1;
String name2 = "飘柔洗发水|";
name2=new String(" ").substring(0,20 - name2.getBytes("GBK").length)+name2;
String name3 = "洗发水|";
name3=new String(" ").substring(0,20 -name3.getBytes("GBK").length)+name3;
System.out.println(name1);
System.out.println(name2);
System.out.println(name3);
}
catch(UnsupportedEncodingException e) {
System.out.println(e);
}
}
}