2012-01-27 3 views
2

私が書いようとしている部分は、ユーザーの名前を入力し、リストボックスのイニシャルを吐き出すことになっています。私がこれまで持っている:部分文字列を使ってイニシャルを表示するスペースを見つける方法

Dim initials As String 
Dim indexspace As Integer 
initials = name.Substring(0, 1) 
indexspace = name.IndexOf(" ") 
lstInvoice.Items.Add(String.Format(strFormat, "Invoice ID", initials & space)) 

私はプログラムを実行すると、私がポップアップする最初のイニシャルを取得することができますが、私はポップアップ表示するために、第2を取得する方法を特定していません。

はあなたにこの問題に関するあなたの援助のために非常に多くの感謝、それは非常に

+1

句読点とスペースの不足を考慮して、「A.A.Milne」または「E.E.(Doc)Smith」の頭文字は何ですか: – paxdiablo

答えて

2

Qを高く評価している:どのように私はVB.Netで文字列に(」「)のスペースを見つけるのですか?

A:String.IndexOf( "");

Q:文字列の後続のスペースを見つけるにはどうすればよいですか?

A:見つかった最初のスペースの右側にあるすべての部分文字列を抽出します。

次に、その部分文字列の ".IndexOf(" ")"を実行します。

あなたは、文字列の末尾に到達するまで、またはあなたが退屈まで:)

+1

なぜダウンボートですか?この答えは間違っていますか? – paxdiablo

+0

Splitを使用したバージョンと比較して、間違っているわけではありません。私はそれをdownvotedしていないだろう。 –

1

私はVBでそれを書いていないことをお詫び申し上げますが、私は、C#に精通しています。スペースのインデックスを探す理由はありません。スペース上の文字列を分割し、配列内の各結果の最初の文字を引っ張りなさい。簡単にするために、私はそれは、文字列に2つだけの言葉だったという仮定をしたが、彼らはミドルネーム含まれている場合、あなたは結果の配列をループでは、すべてのイニシャルを出しできます

string name = "Test User"; 
string[] nameParts = name.Split(' '); 
string initials = nameParts[0].Substring(0, 1) + nameParts[1].Substring(0, 1); 

VBのバージョン:

Dim name As String = "Test User" 
Dim nameParts As String() = name.Split(" ") 
Dim initials As String = nameParts(0).Substring(0, 1) & nameParts(1).Substring(0, 1) 

これもまた、あなたが求めているものに対する非常に単純なアプローチです。 @ paxdiabloは彼のコメントでこのパターンと一致しない名前のバリエーションがありますが、あなたがプログラムであることを知っています。

+0

私は応答スピンを感謝しますが、私はまだプログラミングには全く新しいので、私はC#を読むことができません。 – Tycholiz

+0

私が言っていることは、スペース上の文字列を分割するためにSplit関数を使用するインデックスを使用するよりもむしろです。その後、それぞれの結果の最初の文字をプルダウンして頭文字を取得します。あなたの本当の素早さのためにVBで何かを草稿することができるかどうかを見てみましょう。 – spinon

+0

ありがとうございました。それは完璧に機能しました。乾杯 – Tycholiz