2017-12-28 9 views
-1

「USB SERIAL PORT(COM6)」という文字列があります。このうちCOM6を取得したいのですが。最後の文字から3文字を取得するサブストリングvb.net

これは私がその種の

string.substring(3, string.length - 1) 

何かを使用しようとしていますコードです。 Haventは何かを手に入れることができました。

+0

研究ドキュメントを:私たちは最後のブラケットが含まれてしたくないので、サブストリングの長さは、ブラケットインデックス、1つ少ないのですen-us/library/aka44szs(v = vs.110).aspx)を実行して、簡単な例を確認してください。あなたはいつもこれを行うべきです、推測するだけではありません。特に、startIndexは3となるのはなぜですか? –

+0

@AndyGさて、角括弧のインデックスを見つけてそこから作業する必要がありますか? – TheNoob

+0

はい!あなたがそのような努力を実証すれば、少なくとももっと多くの反応を得るでしょう。 –

答えて

1

あなたはインデックスとして(の最後の発生を使用したほうが良いと思います、場合には1日あなたの文字列形式を変更、またはCOM6は(COM10)長いです:

Dim lastBra as Integer = myString.LastIndexOf("("c) 
Dim lastKet as Integer = myString.LastIndexOf(")"c) 

Dim subs as String = myString.Substring(lastBra + 1, lastKet - lastBra - 1) 

それはlastBra + 1です我々理由開いている括弧の後の文字を開始点として欲しい。 [ストリング](https://msdn.microsoft.com/ため

enter image description here

+0

最後の行を 'myString.Substring(lastBra + 1、lastKet-lastBra)'に変更します。 – TheNoob

+0

私は同意しません。スクリーンショットの編集を参照してください。 'abc(def)'の文字列の場合、lastBraは4、lastKetは8、文字列の長さは5、長さは3ですが、lastKet-lastBraの提案は8-4で、3ではなく4です。 VBは1ベースのインデックスモードです0ベースのインデックスモードの場合、これらの数値はすべて1ずつ変化しますが、全体の数学は同じです) –

+0

はい!私はlastBraに+1を追加して申し訳ありません。 – TheNoob

関連する問題