dポイントプレゼントキャンペーン実施中!

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

どなたかご存知でしたら教えてください。

A 回答 (1件)

文字列操作の対象は、表示上の文字ではありません。


文字列変数内のデータです。
"ab[TABコード]fg" の最初の5文字は。"ab  fg"となります。
"ab  "という結果が欲しいなら、Substring(0, 3)にするか、
あらかじめ[TABコードを]を半角スペース4文字に置換してから行ってください。


http://www.microsoft.com/japan/msdn/academic/Art …

参考URL:http://www.microsoft.com/japan/msdn/academic/Art …
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/08/10 15:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!