在工作中,在字符拼装后,最终需要按顺序展示出来,于是想到了在拼装阶段用特殊字符,最后再统一将特殊字符替换成顺序的数字,并为此写了一个工具类,main方法验证通过。
附上代码如下:
package com.bijian.study; import java.io.UnsupportedEncodingException; /** * 字符串替换工具类 */ public class StringReplace { private static String sign = "●"; public static void main(String[] args) throws UnsupportedEncodingException { String initStr = "●.深圳你好;●.淘宝;●.人民币;●.hello world"; // String initStr = "●.n"; // String initStr = "●.test;●.sa;●.taobao;●.bijian"; // String initStr = "●.n,*啊受到了,●.sasflsaj"; String resStr = replaceSignStr(initStr); System.out.println(resStr); } public static String replaceSignStr(String initStr) { String resStr = ""; int count = stringNumbers(initStr); if(count > 1) { StringBuffer resStringBuf = new StringBuffer(); String subStr; int j = 1; for(int i=0;i<initStr.length();i++) { subStr = initStr.substring(i,i+1); if(subStr.equals(sign)) { subStr = j++ + ""; } resStringBuf.append(subStr); } resStr = resStringBuf.toString(); }else { resStr = initStr.replace(sign + ".", ""); } return resStr; } private static int stringNumbers(String str) { int counter = 0; if (str.indexOf(sign) == -1) { return 0; } else if (str.indexOf(sign) != -1) { counter++; counter += stringNumbers(str.substring(str.indexOf(sign) + sign.length())); return counter; } return 0; } }