java这几个字符串是怎么靠右对齐?

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

img