• 締切済み

C#のSubstringについて

C#初心者です。 文字列の取得について、ちょっと困っています。 string str1 = "abcdefg"; string str2 = "ab  fg"; 表示がずれてしまいましたが、 str2のbとfの間は半角英数字3文字分です。 上の2つの文字列があるとして、 str1 = str1.Substring(0, 5) とすると、str1 = "abcde"となり、 str2 = str2.Substring(0, 5) とすると、str2 = "ab  "となりますが、 元のstr2のスペースの部分がタブスペースだと、 上の結果が得られません。("ab  fg"となってしまう) タブスペースだと、それで1つ分だと認識されるらしいですが、 その場合でもstr2 = "ab  "を得るには どうすればいいでしょうか? 同じような内容(?)も載っていましたが、 C#でも可能でしょうか? ↓↓↓ http://oshiete1.goo.ne.jp/kotaeru.php3?q=410808 どなたかご存知でしたら教えてください。

みんなの回答

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

文字列操作の対象は、表示上の文字ではありません。 文字列変数内のデータです。 "ab[TABコード]fg" の最初の5文字は。"ab  fg"となります。 "ab  "という結果が欲しいなら、Substring(0, 3)にするか、 あらかじめ[TABコードを]を半角スペース4文字に置換してから行ってください。 http://www.microsoft.com/japan/msdn/academic/Articles/Algorithm/01/

参考URL:
http://www.microsoft.com/japan/msdn/academic/Articles/Algorithm/01/
mashiro78
質問者

お礼

やはりそういうことですね。 もしくは、バイト型配列に格納し、 Tabコードを判定するしかないですね。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A