2016-07-25 2 views

답변

0

논리이다

  1. 은 "S"및 "00009"로 "S00009"을 분리한다. 문자열 방법 사용 Substring()
  2. "00009"를 정수로 구문 분석하십시오. Int.Parse 또는 Int.TryParse
  3. 정수에 1을 더하십시오.
  4. "S"와 정수를 인쇄하십시오. string.Concat를 사용하거나 string + integer
0

이 코드를보십시오 :

string record = "S00009"; 
string recordPrefix = "S"; 
char paddingCharacter = '0'; 
string recordNoPart = record.Substring(recordPrefix.Length); 
int nextRecordNo = int.Parse(recordNoPart) + 1; 
string nextRecord = string.Format("{0}{1}", recordPrefix, nextRecordNo.ToString().PadLeft(record.Length - recordPrefix.Length, paddingCharacter)); 

을 kurakura88 이미 로직을 주신 @. 난 그냥 하드 코어 C# 코드를 제공했습니다.

+0

나는 내 솔루션이 정확하다고 말하고 싶지만 동시에 더 나은 구현이 거기에있을 수 있고 이미 제공 했음에도 동의하지만 당신도 뭔가를 놓쳤다는 것에 동의한다. :) –

+0

내가 말한 것을 신경 쓰지 마라. 답변을 제공해 주셔서 감사합니다. – kurakura88

0

당신은 접근

string input = @"S0000"; 
string pattern = @"\d+"; 
string format = @"0000"; 
int addend = 1; 

string result = Regex.Replace(input, pattern, 
    m => (int.Parse(m.Value) + addend).ToString(format)); 

// result = S0001 

정규 표현식 \d+ 일치하는 모든 숫자를 사용할 수 있습니다.

MatchEvaluator은 정수와 일치하는 값을 변환합니다. 그런 다음 가수를 더합니다. 그런 다음 지정된 형식을 사용하여 값을 문자열로 변환합니다.

마지막으로 Replace 메서드를 사용하면 이전 값이 새 값으로 바뀝니다.

관련 문제