C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 0DOAをストリング型の文字列を排除する方法について


(過去ログ 96 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■57263 / inTopicNo.1)  0DOAをストリング型の文字列を排除する方法について
  
□投稿者/ まつもと (1回)-(2011/02/19(Sat) 23:31:39)

分類:[C#] 

はじめまして
C#で開発している初心者です。
ストリング型の文字列に制御文字(0D0Aなど)がはいっている場合に制御文字だけ削除する方法はどうすればよろしいでしょうか?
なにぶん初心者ですので方法がわかりません。
引用返信 編集キー/
■57264 / inTopicNo.2)  Re[1]: 0DOAをストリング型の文字列を排除する方法について
□投稿者/ shu (456回)-(2011/02/19(Sat) 23:48:06)
No57263 (まつもと さん) に返信
> はじめまして
> C#で開発している初心者です。
> ストリング型の文字列に制御文字(0D0Aなど)がはいっている場合に制御文字だけ削除する方法はどうすればよろしいでしょうか?
> なにぶん初心者ですので方法がわかりません。

『など』でなければ
string Src = "aaaa\r\nbbbb"; //-- 元の文字列(0D0Aだと\r\nで表現できる)
string Des = Src.Replace("\r\n", "");
これで0D0Aを空文字列に変換してしまえば良いです。



引用返信 編集キー/
■57265 / inTopicNo.3)  Re[1]: 0DOAをストリング型の文字列を排除する方法について
□投稿者/ 魔界の仮面弁士 (2071回)-(2011/02/19(Sat) 23:59:36)
No57263 (まつもと さん) に返信
> 0DOAをストリング型の文字列を排除する方法について
[ゼロ ディー オー エー]を
[string 型の文字列]を
削除する方法…になってしまっていますね。


> 制御文字だけ削除する方法はどうすればよろしいでしょうか?
制御文字の定義にもよりますが、たとえば改行だけを除去するなら
 string sourceString = "あいうえお\rかきくけこ\nさしすせそ\r\nたちつてと";
 string resultString = (sourceString ?? "").Replace("\x0d", "").Replace("\x0a", "");
こんな感じで書けます。

また、Char.IsControl で取得できる範囲に一致しているなら、
 string resultString = new string(sourceString.ToCharArray().Where(c => !Char.IsControl(c)).ToArray());
のように記述することができます。

さて今回のケースでは、どこまでを制御文字としたいのでしょうか?
たとえば、水平タブやNBSPも除去してよいのか否かとか、Unicode 第14面も除去対象なのかとか。
http://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E6%96%87%E5%AD%97
http://ash.jp/code/ctrltbl.htm
http://www.seiai.ed.jp/sys/text/cs09/mcodes/ucodectrl.html
http://ja.wikipedia.org/wiki/%E8%BF%BD%E5%8A%A0%E7%89%B9%E6%AE%8A%E7%94%A8%E9%80%94%E9%9D%A2
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -