Replace関数って・・・

  • 2014.11.15 Saturday
  • 12:37

文字列の1文字だけを換えたいので、いろいろ調べていましたが、

例: aaaaaaaaaa → aabaaaaaaa
みたいな

ここはやっぱりDOBON先生ですね。
文字列を置換する


その中のReplace関数が手軽そうなので、使ってみようかなと思ったら・・・
 
Dim a As String = "aaaaaaaaaa"
Dim b As String = Replace(a, "a", "b"31)
 
IN :aaaaaaaaaa
OUT:baaaaaaa

あれ?ミスった?
 
Dim a As String = "aaaaaaaaaa"
Dim b As String = Replace(a, "a", "b"11)
 
IN :aaaaaaaaaa
OUT:baaaaaaaaa

問題なさそう?

オプションをTextにしてみたり、いろいろ試してみましたが、
MidやRight関数みたいに、指定位置からの置換すると、
それより前が消えちゃうのね。
(そこから以降を取り出して置換するイメージ。DOBON先生の例でも、先頭の”にわ”が消えている・・・)

ExcelのVBAでも同じなので、バグと言うよりも仕様なのね。

とりあえず、もう一つのStringBuilderでいいかな。
 
Dim a As String = "aaaaaaaaaa"
Dim b As String
Dim sb As StringBuilder = New StringBuilder(a)
‌ 
Call sb.Replace("a", "b"21'3文字目をbに換える
= sb.ToString
 
IN :aaaaaaaaaa
OUT:aabaaaaaaa


あっ、自分がやりたかったのは、oldcharが任意文字でも置換できる方法だった。
C言語で言うところの、 a[2] = 'b'; みたいな。

left mid rightの組み合わせか、正規表現でreplaceか
あとは、charの配列にして、置換してからstringに戻すしかないなぁ。
 
a.Chars(2= "b"c

できればいいのに、不便

文字列 char 置換 VB2008

 
コメント
コメントする








    
この記事のトラックバックURL
トラックバック

calendar

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< December 2017 >>

search this site.

よく使う、検索される投稿

categories

アマゾン

楽天

selected entries

archives

recent comment

  • WHEA-Logger イベント17 エラーが全く解消されない
    rockecco (12/06)
  • WHEA-Logger イベント17 エラーが全く解消されない
    通りすがり (12/05)
  • Windows7 の IISマネージャが出てこない
    kimu (12/01)
  • あの、クラスとかメソッドとかプルダウンできるバーって〜Visual Studio 2015
    rockecco (11/30)
  • あの、クラスとかメソッドとかプルダウンできるバーって〜Visual Studio 2015
    にま (11/30)
  • ダイソンHot+Coolを買ってみた
    rockecco (11/13)
  • ダイソンHot+Coolを買ってみた
    naoyuki (11/11)
  • 豊セ祭2017情報ゲット
    Panda NEKO No.1 (10/28)
  • ミラクルミラクルなりきりコスチュームの在庫を確認してみる
    rockecco (10/16)
  • ミラクルミラクルなりきりコスチュームの在庫を確認してみる
    チョコ (10/15)

recent trackback

profile


※当ブログはリンクフリーですが、 取材や雑誌等で掲載される場合は、事前にお知らせください

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM