次のような文字列シーケンスで始まる既存のレコードにどのように整数を追加できるか教えてください。既存のレコードに整数を追加するにはどうすればよいですか?
S0000 - S00027
種類よろしく、 Indunil Sanjeewa
次のような文字列シーケンスで始まる既存のレコードにどのように整数を追加できるか教えてください。既存のレコードに整数を追加するにはどうすればよいですか?
S0000 - S00027
種類よろしく、 Indunil Sanjeewa
ロジックは次のとおり
Substring()
Int.Parse
またはInt.TryParse
string.Concat
または単にstring + integer
を使用します。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#コードを提供しました。
私の解決策は正しかったと同時に、より良い実装がそこにあることに同意すると同時に、あなたは既にそれを提供していますが、あなたも何かを逃してしまったことに同意します:)。 –
私が言ったことは心配しないでください。答えを提供していただきありがとうございます。 – kurakura88
あなたはアプローチ
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
メソッドを使用すると、以前の値が新しい値に置き換えられます。
最後の既存のレコードは文字列ですか? – kurakura88
はい。例:S00009 –