2017-01-17 4 views
2

私はいくつかのコードを読んでいますが、短い文字列をトリミングする短い構文readStudentData = line.Split(':')[1].Trim().Split(' ')には苦労しています。 (readStudentDataは文字列配列です)。少し説明することができますか( "[1]"部分は私を失うものです)C#短い文字列のトリミング

+0

2番目の ':'アピアランスの前に、元の 'string'の最初の': '記号の後にデータが入ります。とにかくあなたの質問はむしろ実際には話題になっていません。 – Ian

+3

簡単な表現に分解してください: 'line.Split( ':')'とは何ですか?これを試してください: 'var x = line.Split( ':'); var y = x [1]; 'デバッガでこれを実行すると、変数に何が起きているのでしょうか? –

+0

これはスプリットオーバーロードですか、それとも文字列配列からですか? – user7431575

答えて

10

:に文字列を分割します。これは配列を返します。 [1]は、その配列の2番目の項目を返す配列インデックス処理です。その後、その項目をトリムし、スペースにを割り振ってを分割します。

基本的な例を考えてみましょう。あなたは、文字列line = "title:hi bob "

readStudentData変数に割り当てられます
line.Split(':')      --> ["title", "hi bob "] 
       [1]     --> "hi bob " 
        .Trim()    --> "hi bob" 
         .Split(' ') --> ["hi", "bob"] 

を持っていると言います。他の回答に追加するには

+0

ですが、私はまだ ':'の前にどのようにデータを失うのか分かりません。 – user7431575

+0

@ user7431575 thata the [1] part、[0] –

+0

私の編集を参照してください。うまくいけば、それは物事をより明確にします。 – Amy

0

トリム()は、文字列の先頭と末尾に空白やタブを削除します。

1

Split(':')

あなたは文字が発見された時はいつでも= n chunksLengthstring[]stringを分割しようとしていることを意味しています。文字列内に文字がない場合は、文字列全体を含むサイズ1の配列が返されます。例えば

Name:LuisNameLuis

[1]

を含むサイズ2の配列を返すことは、あなたが第二の位置にアクセスしていることを意味します。前の例では:Luis

あなたは先頭と末尾の空白を削除している

Trim()

を意味します。

最後に、文字としてを使用して、最初と同様の操作を実行しています。スペースが見つからなかった場合は、サイズの配列を返します。1

関連する問題