C#で文字列を弄るなら正規表現を使いたい
ファイル名に拡張子をつけていないので、
ファイルを保存する際に、
拡張子を追記して保存するようにしたい
と仰る方を見かけたので一つサンプルコードを。
文字列操作なんて不要!
なら、正規表現で置き換えてみよう。
↓無理やり文字列の後尾に「.png」を追加するプログラム
using System; using System.Text.RegularExpressions; public class Program{ public static void Main(){ string fileName = Console.ReadLine(); if(fileName == null){ Console.WriteLine("入力に文字を入れてください。"); return; } if(fileName.Contains(".")){ Console.WriteLine("拡張子を.pngに置き換えます"); fileName = Regex.Replace(fileName,@"(?<=\.)(.*)","png"); } else{ fileName = string.Concat(fileName , ".png"); } Console.WriteLine(fileName); } }
追記
↑のやつ
「aaaa.hoge.fuga」ってやると
「aaaa.png」になる。駄目コード。
ってか、少し調べてたらこんなクラスがあったで。。。
Path.ChangeExtension メソッド (String, String) (System.IO)
正規表現なんて不要!
なら、ChangeExtensionで置き換えてみよう。
↓無理やり文字列の後尾に「.png」を追加するプログラム(Ver2)
using System; public class Program{ public static void Main(){ string fileName = Console.ReadLine(); if(fileName == null){ Console.WriteLine("入力に文字を入れてください。"); return; } fileName = System.IO.Path.ChangeExtension(fileName, "png"); Console.WriteLine(fileName); } }
え?
1行で済むやないかーーーーーい
.NET様様だね。