2016-07-25 7 views

答えて

0

ロジックは次のとおり

  1. "S" に "S00009" を分離して "00009"。文字列メソッドを使用するSubstring()
  2. "00009"を整数に解析します。 Int.ParseまたはInt.TryParse
  3. 整数に1を加えてください。
  4. "S"と整数を印刷して戻してください。このコードを試してみてくださいstring.Concatまたは単にstring + integer
0

を使用します。kurakura88 @

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)); 

しても、すでにロジックを与えています。私はハードコアの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メソッドを使用すると、以前の値が新しい値に置き換えられます。

関連する問題