2016-06-12 7 views
0

"string#int"の形式で文字列を入力しましたが、私は使用しているAPIのWebフレンドリーな理由から "string-int"に変換します。また、フォーマットを確認しながら文字列内の項目を置き換えます。

これを行うには、明らかに、単一の文字#を - string.replaceを使用して置き換えることができますが、理想的には入力(ユーザーによって提供される)が正しいかどうかチェックしたいと思いますformat(string#int)の代わりに " - "を使用してWebフレンドリなバージョンに変換します。基本的に私はC#でこの入力が正しい形式であることを確認し、それを必要な結果形式に変換するためのメソッドがあるかどうか疑問に思っています。

答えて

0

あなたが要求するフォーマットは非常に特殊なので、明らかに組み込みの方法はありません。また、文字列には何か、またhastag、#を含めることができるので、それを絞り込む必要があると思います。

正規表現を使用して、文字列が正しい形式であるかどうかを確認できます。

[A-Za-z ]+#[0-9]+ 

のために一致します:これは、可能な表現だろう

が、これは123

+0

恐ろしい!以前は正規表現を試したことがありませんでした。文字列のチェックにスペースを必要としない方法がありますか?編集:nvm私はちょうどzの後にそのスペースを削除すると思いますか? – UniqueUsername

+0

私はこれに続いてinputString.Replace( '#'、 ' - '); – UniqueUsername

+0

@ user2476545はい、スペースを削除してください。 –

0

を内蔵何もありません文字列#があるが、あなたは次の操作を行うことができます:

var parts = input.Split(new char[] { '#' }); 

if (parts.Length != 2) incorrect format 

int result; 
if (!int.TryParse(parts[1], out result) incorrect format 

output = String.Join("-", parts); 

これは「input」を「#」文字に分割します。結果が2つの部分でない場合、文字列は無効です。 2番目の部分が整数であることを確認します。TryParseが失敗した場合、それは無効です。最後のステップは2つの部分に再結合することですが、今回はセパレータとして-を使用します。

関連する問題