0

特定の文字を削除する必要がある文字列があります。

string note = "TextEntry_Slide_7|メモ帳 1 あちこちにテキストを入力します :)|250887|0^TextEntry_Slide_10|メモ帳 2: wrilun3q 4p9834m ggddi :(|996052|2^TextEntry_Slide_14||774159|4^TextEntry_Slide_16| tnoinrgb rt trn n|805585|5"

^文字とその後ろの9文字を削除したい^。したがって、文字列は次のようになります。

string note = "TextEntry_Slide_7|メモ帳 1 あちこちにテキストを入力します :)TextEntry_Slide_10|メモ帳 2: wrilun3q 4p9834m ggddi :(TextEntry_Slide_14|TextEntry_Slide_16|tnoinrgb rt trn n|805585|5"

また、その後、文字列の末尾から最後の 9 文字を削除する必要があります。

string note = "TextEntry_Slide_7|メモ帳 1 あちこちにテキストを入力します :)TextEntry_Slide_10|メモ帳 2: wrilun3q 4p9834m ggddi :(TextEntry_Slide_14|TextEntry_Slide_16|tnoinrgb rt trn n"

もともと弦の音符にあった他の多くのものをすでに削除しましたが、上記の方法に困惑しています。

^文字のインデックスは次のように見つかりましたが、そのnote.IndexOf("^")前の 9 文字を削除するために次に何をすべきかわかりません。

どんな助けでも大歓迎です:)

4

5 に答える 5

3

1つの簡単な方法はRegex.Replace(note, ".{9,9}\\^", "");

最後の 9 文字を削除する明白な方法は次のようになります。note.Substring(0, note.length - 9);

于 2012-12-12T16:28:17.743 に答える
1

もちろん、必要なのは次のとおりです。

string output = Regex.Replace(note, @".{9}\^", string.Empty);
// remove last 9
output = output.Remove(output.Length - 9);
于 2012-12-12T16:33:33.607 に答える
1

まず、正規表現を使用してキャレットと先行する 9 文字を取り除きます。

 var stepOne = Regex.Replace(input, @".{9}\^", String.Empty);

次に、最後の 9 文字を破棄します。

 var stepTwo = stepOne.Remove(stepOne.Length - 9);

また、おそらくエラー処理を追加する必要があります。たとえば、ステップ 1 の後で文字列が 9 文字より短い場合などです。

于 2012-12-12T16:34:54.250 に答える
0

を使用している場合は.IndexOf("^")、その結果/位置を一時変数に格納してから、いくつかの.Substring()呼び出しを使用して文字列を再構築できます。

次のようなものを試してください:

int carotPos = note.IndexOf("^");
while (carotPos > -1) {
    if (carotPos <= 9) {
        note = note.Substring(carotPos);
    } else {
        note = note.Substring(0, (carotPos - 9)) + note.Substring(carotPos);
    }
    carotPos = note.IndexOf("^");
}

これにより、文字列の最初^の文字が検索され、その前の9文字(を含む^)が削除されます。次に、^文字列内の次を検索し、残りがなくなるまで繰り返します。

次に、文字列から最後の9文字を削除するには、もう1つ実行します.Substring()

note = note.Substring(0, (note.Length - 9));
于 2012-12-12T16:31:48.663 に答える
0

あなたの言語が何であるかはわかりませんが、vb.netではこれにinstr()関数をよく使用しました。instrは、別の文字列内で文字列の最初の一致が見つかった位置を示し、文字列が見つからなかった場合は0または負の値を返します。

次に、vb.netで文字列を削除する場合は、mid()関数をlen()関数と組み合わせて簡単に実行できます。lenは、文字列から必要なものを計算できるinstrとともに長さを通知します。

C#でこれを実行したい場合は、次のURLを確認してください:http://www.dotnetcurry.com/ShowArticle.aspx? ID = 189

于 2012-12-12T16:32:38.290 に答える