【需求】
取固定長度的字符串,不足左補字符或右補字符
如字符串為hello,固定長度為8,左補方案為***hello,右補方案為hello***
【實現代碼】
package com.hy.lab; import java.util.Arrays; public class StringUtil { /** * 返回固定長度的字符串,多了截取,少了左補字符 * @param raw * @param fixSize * @param prefix * @return */ public static String leftAdd(String raw,int fixSize,char prefix){ int n=raw.length(); if(n==fixSize){ return raw; }else if(n>fixSize){ return raw.substring(0,fixSize); } char[] arr= new char[fixSize]; Arrays.fill(arr,prefix); for(int i=fixSize-n;i<fixSize;i++){ arr[i]=raw.charAt(i+n-fixSize); } return String.valueOf(arr); } /** * 返回固定長度的字符串,多了截取,少了右補字符 * @param raw * @param fixSize * @param prefix * @return */ public static String rightAdd(String raw,int fixSize,char prefix){ int n=raw.length(); if(n==fixSize){ return raw; }else if(n>fixSize){ return raw.substring(0,fixSize); } char[] arr= new char[fixSize]; Arrays.fill(arr,prefix); for(int i=0;i<n;i++){ arr[i]=raw.charAt(i); } return String.valueOf(arr); } public static void main(String[] args){ System.out.println(leftAdd("Hello",8,'*')); System.out.println(leftAdd("a",8,'_')); System.out.println(leftAdd("哈哈",8,'0')); System.out.println(leftAdd("HelloHe",8,'*')); System.out.println(leftAdd("HelloHello",8,'*')); System.out.println(leftAdd("HelloHel",8,'*')); System.out.println(); System.out.println(rightAdd("Hello",8,'*')); System.out.println(rightAdd("a",8,'_')); System.out.println(rightAdd("哈哈",8,'0')); System.out.println(rightAdd("HelloHe",8,'*')); System.out.println(rightAdd("HelloHello",8,'*')); System.out.println(rightAdd("HelloHel",8,'*')); } }
【輸出】
***Hello _______a 000000哈哈 *HelloHe HelloHel HelloHel Hello*** a_______ 哈哈000000 HelloHe* HelloHel HelloHel
END