JAVA 字串擷取,長度不夠以 0 補充
阿新 • • 發佈:2019-01-26
1、測試方法
@Test public void subStringTest(){ String str = "ABC"; String newStr = ""; newStr = substring(str, 1, 4);//長度不夠前面加0 等於 0ABC 擷取 1,4 所得 ABC assertEquals("ABC", newStr); newStr = substringLast(str, 4);//長度不夠前面加0 0ABC assertEquals("0ABC", newStr); newStr = substring(str, 1, 5);//長度不夠前面加0 等於 00ABC 擷取 1,5 所得 0ABC assertEquals("0ABC", newStr); newStr = substringLast(str, 2);//得到最後 兩個字元 BC assertEquals("BC", newStr); newStr = substring(str, 1, 3);//得到 BC assertEquals("BC", newStr); }
2、擷取方法
/** * 擷取 字串,不夠以0 補充 * * @param str * 字串 * @param start * 擷取開始位置(包含) * @param end * 擷取結束位置(不包含) * @return */ private String substring(String str, int start, int end) { int len = 0; if (StringUtils.isNotBlank(str)) { len = str.length(); } if (len < end) {// 長度不夠,補充 0 return append(str, len, end).substring(start, end); } else { return str.substring(start, end); } } private String append(String str, int start, int end) { StringBuilder sb = new StringBuilder(); for (int i = start; i < end; i++) { sb.append("0"); } sb.append(str); return sb.toString(); } /** * 擷取最後字元規定長度的字串,不足以0補充 * @param str 字串 * @param subLen 擷取長度 * @return */ private String substringLast(String str, int subLen){ int leng = 0; if(StringUtils.isNotBlank(str)){ leng = str.length(); } if(leng < subLen){ return append(str, leng, subLen); }else{ return str.substring(leng - subLen); } }