2011-02-08 7 views
0

で数文を見つけるには?どのようにどのように文字列データ内の文章の番号を見つけるために、文字列

編集:[OK]を私は、あなたが(スプリッタとして「文」を終了し、おそらく複数の文字を決めるものは何でも使って、Wipqoznの方法

Dim str As String = "This . is . a . text." 
Dim maxCount As Integer = str.Count 
Dim intSent As Integer = 1 
Dim singleChar As Char 

For i = 1 To maxCount 
    singleChar = str.Chars(i)   ' Getting an error here 
    If singleChar = "." Then 
     intSent = intSent + 1 
    End If 
Next 

MsgBox("Number of sentence = " & intSent) 

enter image description here

+3

はあなたを持っていますこれを試したことさえできましたか、答えを見つけるためにSOに行っただけですか? –

+0

宿題の場合は、宿題にタグを付けてください。あなたが助けを求める前にやったことを示すことに何が起こったのですか? – Martin

+0

もし私がそれを自分で行うことができたら、私はここでそれを聞いたことはないでしょう。そして私はこれを過去の1.20時間にしようとしています。 –

答えて

0

編集2:Dim maxCountをInteger = str.Count-1に設定します。配列は0から始まるので、str.Count-1で終わります。 str.Countではなくstr.Count-1をチェックしたい最後の要素です。

編集:私はあなたがI = 1を設定しているためsingleChar = str.Charsであなたのエラー(i)があると信じています。私が間違っていない限り、配列はBASICの '0'で初期化されます(これはすべて文字列です)。したがって、最初の文字はstr.Chars(0)ではなくstr.Char(1)にあります。また、エラーが発生した場合は、質問にエラーを投稿する必要があります。私たちはあなたが文字列の各文字を調べてみましょうそれ)

Here. =理解し、あなたの問題のお手伝いをすることたくさん容易になります。あなたは、開始(または終了)文を示している(自分であらかじめ定義された)いくつかの事前定義された値(S)と比較すること、歩くと、文字列の各要素を検討するためにループを使用する必要があります。

+0

は、私はまだエラーを取得し、ここを見て[リンク](http://i.imgur.com/DAX7s.jpg) –

+0

あなたがMAXCOUNTに 'I = 0を使用する必要があります - 1 ' – Alain

+0

は整数としてMAXCOUNT薄暗いません= str.Count-1の方が速いですか?実際には、おそらく-best-メソッドは単にstr.Count-1を使用するだけで、maxCountを気にする必要はありません。 – Wipqozn

0

文字列データを解析し、次の後、この思い付きましたピリオドや感嘆符など)を入力し、返された配列内のセグメントを数えます。

EDIT: 次linkを経て、VB.netでは、正規表現を使用する方法を学ぶ:here

、C#でデモしたよう

@"(\S.+?[.!?])(?=\s+|$)" 

をしてから、この正規表現を使用します

+0

を開始したり、ちょうど数える無知だからそう、ですか?あなたが何かのためにそれを使用しようとしていない場合、実際に配列を作成する必要はありません。 –

+0

私はスプリッタについて言及しました。私が正しく覚えていれば、vb.netのsplitメソッドは自動的に配列を返しませんか? – CrazyPenguin

0

あなたがやっているすべての期間をカウントしている場合は、あなただけ使用することができ

str.Split(新シャア(){ "" C})。長さ-1

関連する問題