2010-01-12 2 views
0

와 문자열 플레이스 홀더를 대체하는 방법문자열이 주어 값

string command = "%ans[1]%*100/%ans[0]%" 

어레이로 배열 %의 ANS에게 [1] %의 ANS [0] %의 [1] %를 대체 [2]

방법은 다음과 같은 결과를 얻을 수있는 배열의 값으로 command의 위치에 홀더를 대체 할 수 있습니까? 정규 표현식을 사용해야합니까?

그리고 Regex.Replace를 사용하고 계십니까?

"test2*100/test1" 
+0

는 질문을 정교 - 더 명확하게 – Amarghosh

+5

문제를 언급하려고 나는 왜 명백하게 비 네이티브 영어 스피커에서이 질문은 오히려 질문을 명확히하지는 않고 3 회를 닫 투표되었습니다 놀라지 않았다. 이 사이트는 매일 악화됩니다. 묻는 사람에게 당신의 질문은 엄청나게 분명합니다. 더 많은 도움을 얻으려면 코드 샘플을 다시 말하거나 제공하십시오. – Chris

답변

2

당신은 표준 를 교체 사용하여 시도 할 수 있습니다.

string command = "%ans[1]%*100/%ans[0]%"; 
string[] array = new string[] { "test1", "test2" }; 
for (int iReplace = 0; iReplace < array.Length; iReplace++) 
    command = command.Replace(String.Format("%ans[{0}]%", iReplace), array[iReplace]); 
+0

와우, 그건 좀 이상해. 글쎄, 나는 정말로 추측하지 않는다. – tarn

+0

Regex.Replace를 사용할 수 있습니까? –

+1

당신은 확실히 Regex.Replace를 사용할 수 있지만, 그것은 훨씬 더 무거운 손으로 같은 간단한 문제입니다. 정규식은 꼭 필요한 * 것은 아닙니다. 이것은 간단하고 이해하기 쉽고 작동하는 솔루션입니다. 당신이 Regex.Replace을 사용할 수 있습니다 – Eilon

3

당신은 단지 명령 문자열로 문자열을 삽입 및 String.format을 사용할 수

string command = "{0}*100/{1}"; 

string[] array = new string[] { "test1", "test2" }; 

string.Format(command, array[1], array[0]); 
+0

그리고'command'의 형식을 바꿀 수 없다면 어떻게 될까요? (이 경우인지 모르겠어요;. 아마도 @monkey_boys 명확히 할 수 있습니다) 매트를 들어 – dtb

+0

문자열은 고정 agument하지 내가 당신과 동의에 사용 –

+0

에 대한 동적 문자열을 부여해야, 난 단지 그것이 그가 할 목적으로 무엇을 생각했다. 그는 질문을 게시 할 때 –

1

이 그것을 않지만, 나는 그것이 당신이 찾고있는 무엇을 의심 같은

뭔가. 오 잘.

for (int i = 0; i < array.Length; i++) 
{ 
    command = command.Replace(string.Format("%ans[{0}]%", i), array[i]); 
} 
관련 문제