2016-12-15 11 views
-1

私はC#スクリプトを使用するデータキャプチャソフトウェア(PSI-Capture)を使用しています。私はキャプチャされた値を文字列に変換し、スペースまたは改行文字で分割する最良の方法を知る必要があります。私はフルネームフィールド(FirstName MiddleName Surname)をキャプチャしていますが、時にはそれらは1行または2行になります。だから私はスペースと改行の両方に分割する必要があるので、別々のフィールドに名前の各部分を入れることができます。スペースまたは改行で分割

名が1行でそのように時々ある:

MICHAEL JACKSON

そして時には彼らは、二行でそのようなものです:

MICHAEL JAMES
JACKSON

+3

に残っていないことを保証しますか! –

答えて

0

string[] nmが名前のdoesntを意味2つの要素が含まれている場合、これはあなた

names = names.Replace(Environment.NewLine, " "); // as suggested by @Dmitry Bychenko 
string[] nm = names.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 

のためのトリックを行う可能性がありますが、ミドルネームを持っているので、

firstname = nm[0]; 
if(nm.Length > 2) 
{ 
    middlename = nm[1]; 
    lastname = nm[2] 
} 
else 
{ 
    lastname = nm[1] 
} 
+1

'' \\ \ n "'の代わりに 'Environment.NewLine'がより正確に実装されています –

+0

' nm.Length> = 2'を 'nm.Length> 2'に変更してください。 'nm'が2つの要素を含んでいれば' nm [2] 'は例外をスローします。 – erikscandola

+0

ニースキャッチ@erikscandola。完了しました。ありがとう:) –

0

nameInputTextは、ユーザの入力とするあなたが試すことができますユーザー名部品の必要な配列取得するために、以下:ここでは、この例では

string actualName = Regex.Replace(nameInputText, @"\r\n?|\n|\s+", "-"); 
string[] partsOfName = actualName.Split(new char[]{'-'}, StringSplitOptions.RemoveEmptyEntries); 

を、あなたはを取得します-意志に基づいてactualName変数にして分割することによってはあなたの要素の必要な配列、名前の一部

0

、置き換えることができるのspace

string str = str.Replace(Environment.NewLine," "); 
string[] array = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 

利用に基づいてspaceNewLinesplitを与えますStringSplitOptions.RemoveEmptyEntriesは `あなたが(、StringSplitOptions.RemoveEmptyEntriesを新しい[] { '\ n' は、 '\ r' が、 ''、 '\ T'})` s.Splitを試してみました何empty entriesarray

+0

私はまだそれらを学んでいるように私のスクリプトのスキルは非常に限られている、私はこれで終わったが、私はそれが仕事を得ることができないとして何か間違っている必要があります – Sadeb

+0

if(dataField.Name == "Z_Name" ) { try \t { \t文字列str = str.Replace(Environment.NewLine、 ""); \t \t \t \t \t string [] array = str.Split(new char [] {''}、StringSplitOptions.RemoveEmptyEntries); \t \t \t \t \t string actualName = Regex.Replace(Z_Name、@ "\ r \ n?| \ n | \ S +」、 " - "); \t \t \t \t \t列[] NM = actualName.Split(新しい文字[] { ' - '}、StringSplitOptions.RemoveEmptyEntries); \t \t \t \t \t FIRSTNAME = NM [0]; \t \t \t \t \t IF(nm.Length> 2) \t \t \t \t \t \t { \t \t \t \t middlename = nm [1]; \t \t \t \t lastname = nm [2]; \t \t \t \t \t \t} \t \t \t \t他\t \t \t \t \t \t \t { \t \t \t \t LASTNAME = NM [1]。 \t \t \t \t \t \t} \t \t \t \t \t} \t \t \t \t} – Sadeb

関連する問題