Ich schreibe eine Konsolenanwendung, die aus einer CSV-Datei liest und speichert jedes Element aus der Datei in einem Array von Zeichenfolgen. Es gibt eine Methode, mit der ich jede Zeichenfolge im Array durchlaufen und alle nicht alphanumerischen Zeichen und Leerzeichen entfernen möchte. Ich war erfolgreich mit einer Zeichenfolge mit einem regex.replace(), aber das änderte sich, sobald ich es mit einem Array von Zeichenfolgen versuchte. Ich ging dann weiter und versuchte, eine string.replace() zu verwenden, aber ohne Erfolg. Ich denke, der Regex-Pfad ist eine bessere Option, aber ich war nicht erfolgreich. Wenn mir jemand helfen könnte, würde ich das sehr schätzen. Hier ist mein Code so weit:String Replace()/regex replace - Ersetzen von Strings im String-Array?
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);
}
Die CSV-Datei enthält verschiedene Adressen durch Kommas getrennt. Mein Ziel ist es, die Zahlen zu entfernen und nur mit dem Straßennamen zu bleiben. Zum Beispiel könnte die ursprüngliche Zeichenfolge 123 Fake sein, das Ziel ist es, die "123" zu entfernen, so dass sie nur durch "Fake" ersetzt werden würde. Ich möchte dies für jedes Element im Array tun.
Haben Sie die [MSDN-Seite für Regex.Replace] (http://msdn.microsoft.com/en-us/library/h0y2x3xs.aspx) gelesen? (A) es _returnns_ eine Zeichenkette und (B) keine ganze Zahl als das erste Argument annimmt, so wird dies nicht so kompiliert wie es ist. –
Wenn Ihr tatsächlicher Code nicht anders ist als dieses Beispiel, erhalten Sie nur die letzte Adresse aus der Datei in Ihrem Adressfeld. Sie überschreiben es in jeder Iteration Ihrer while-Schleife. – pstrjds