java輸出字符串對齊問題


輸出至文件、文本域時讓字符串對齊

代碼:

 1 public class Align {  2     public static void main(String[] args) {  3         System.out.println("默認輸出方式");  4         System.out.println(leftAlign("半角轉全角左對齊",20,'-'));  5         System.out.println(rightAlign("半角轉全角右對齊",20,'-'));  6         System.out.println(quanToban(leftAlign("全角轉半角左對齊",20,'-')));  7         System.out.println(quanToban(rightAlign("全角轉半角右對齊",20,'-')));  8  }  9     //左對齊,半角轉全角(原串、希望域寬、填充字符)
10     public static String leftAlign(String str, int len,char c) { 11         char array[] = str.toCharArray(); 12         for (int i = 0; i < array.length; i++) {//半角轉全角
13             if (array[i] == ' ') { 14                 array[i] = '\u3000'; 15             } else if (array[i] < '\177') { 16                 array[i] = (char) (array[i] + 65248); 17  } 18  } 19         int sub = len - str.length(); 20         if (sub <= 0) { 21             return new String(array);//大於等於len返回
22  } 23         char[] temp = new char[len]; 24         System.arraycopy(array, 0, temp, 0, str.length()); 25         for (int j = str.length();j < len; j++) {//左對齊右填充
26             if (c == ' ') { 27                 temp[j] = '\u3000'; 28             } else if (c < '\177') { 29                 temp[j] = (char) (c + 65248); 30  } 31  } 32         return new String(temp); 33  } 34     //右對齊,半角轉全角
35     public static String rightAlign(String str, int len, char c) { 36         char array[] = str.toCharArray(); 37         for (int i = 0; i < array.length; i++) { 38             if (array[i] == ' ') { 39                 array[i] = '\u3000'; 40             } else if (array[i] < '\177') { 41                 array[i] = (char) (array[i] + 65248); 42  } 43  } 44         int sub = len - str.length(); 45         if (sub <= 0) { 46             return new String(array); 47  } 48         char[] temp = new char[len]; 49         System.arraycopy(array, 0, temp, sub, str.length()); 50         for (int j = 0;j < sub; j++) {//右對齊左填充
51             if (c == ' ') { 52                 temp[j] = '\u3000'; 53             } else if (c < '\177') { 54                 temp[j] = (char) (c + 65248); 55  } 56  } 57         return new String(temp); 58  } 59     //全角轉半角,輸出默認是半角
60     public static String quanToban(String str) { 61         char array[] = str.toCharArray(); 62         for (int i = 0; i < array.length; i++) { 63             if (array[i] == '\u3000') { 64                 array[i] = ' '; 65             } else if (array[i] > '\uFF00' && array[i] < '\uFF5F') { 66                 array[i] = (char) (array[i] - 65248); 67  } 68  } 69         return new String(array); 70  } 71 }

執行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM