こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2003-07-29 22:18:13

QNo.614671

困ってます

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

ANo.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/

投稿日時 - 2003-07-29 22:43:39

お礼

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

投稿日時 - 2003-08-10 15:10:56

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-