在工作中,在字符拼装后,最终需要按顺序展示出来,于是想到了在拼装阶段用特殊字符,最后再统一将特殊字符替换成顺序的数字,并为此写了一个工具类,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;
}
}