1. 程式人生 > >將字串中的佔位符"%s"替換為引數列表中的元素

將字串中的佔位符"%s"替換為引數列表中的元素

題目描述:將字串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;
		}