將字串中的佔位符"%s"替換為引數列表中的元素
阿新 • • 發佈:2019-02-09
題目描述:將字串A中的佔位符"%s"替換為引數列表arg中的元素,引數列表中元素多的追加到字串的後面,保證引數列表中的元素個數大於等於字串中的佔位符個數。
輸入:“A%sC%s”{'B','D','E'}
輸出 : “ABCDE"
程式碼:
public static String formatString(String A, int n, char[] arg, int m) {
if(A == null || arg == null || n <= 0 || m <= 0)
return A;
StringBuffer str = new StringBuffer(A);
int j = 0;
int index = str.indexOf("%s");
for(int i = index; (i < n - 1 )&& (i != -1); i++){
if((str.charAt(i) == '%') && (str.charAt(i + 1) == 's')){
str.setCharAt(index++, arg[j++]);
i++;
}
else{
str.setCharAt(index++, A.charAt(i));
}
}
for(int i = j; i < m ; i++)
if((index != -1) && (index <= n - 1)){
str.setCharAt(index++, arg[i]);
}
else{
str.append(String.valueOf(arg[i]));
}
String result = str.toString();
if((index != -1) && (index <= n - 1)){
result = result.substring(0, index);
}
return result;
}