私はcsvファイルから読み込み、ファイルの各要素を文字列の配列に格納するコンソールアプリケーションを作成しています。私は、配列内の各文字列を繰り返し、非アルファベット文字と空白をすべて削除する方法があります。私はregex.replace()を使って文字列を使ってこれを成功させましたが、文字列の配列でそれをやろうとすると変更されました。その後、string.replace()を使用しようとしましたが、無駄にしました。私は正規表現のパスがより良い選択肢だと思うが、私は成功していない。もし誰かが私を助けることができたら、私はそれを高く評価します。これまでのコードは、これまで通りです。文字列置換()/ regex replace - 文字列の配列の文字列を置換しますか?
public static string[] ChangeAddress(string[] address)
{
for (int i = 0; i < address.Length; i++)
{
Regex.Replace(i, @"(\s-|[^A-Za-z])", "");
System.Console.WriteLine(address[i]);
}
return address;
}
static void Main(string[] args)
{
string[] address = null;
//try...catch read file, throws error if unable to read
//reads file and stores values in array
try
{
StreamReader sr = new StreamReader("test.csv");
string strLine = "";
//while not at the end of the file, add to array
while (!sr.EndOfStream)
{
strLine = sr.ReadLine();
address = strLine.Split(',');
}
}
catch (Exception e)
{
Console.WriteLine("File could no be read:");
Console.WriteLine(e.Message);
}
//calls ChangeAddress method
ChangeAddress(address);
}
csvファイルには、カンマで区切って異なるアドレスが含まれています。私の目標は数字を削除し、通りの名前だけを残すことです。例えば、元の文字列は123の偽であり、目標は "123"を削除して "偽"に置き換えることです。私は配列の各要素にこれをしたい。
[Regex.ReplaceのMSDNページ](http://msdn.microsoft.com/en-us/library/h0y2x3xs.aspx)を読んでいますか? (A)は文字列を返し、(B)は最初の引数として整数を取らないので、これはそのままコンパイルされません。 –
実際のコードがこのサンプルと多少異なる場合を除いて、アドレス配列内のファイルから最後のアドレスだけを取得しています。 whileループの各繰り返しで上書きします。 – pstrjds