В строке найти подстроку и обрезать последний символ - C#
Формулировка задачи:
в строке наити подстроку и обрезать последний символ,если в подстроке в конце "-" , то перенести "-" в следующую подстроку
не получается почемуто, убрать символы
минус записать в следующую подстроку, не пойму как
using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace наити_подстроку_в_строке_и_изменить
{
class Program
{
static void Main(string[] args)
{
string linies = "1.3301;1.3337;1.3239;1.3273;;.7534-;29;2;107079;194564-;27443;1.6180B;1.2806;" + // нужно удалить в конце буквы "А" и "В" ;1.6180B; = ;1.6180;
"1.3321;1.3358;1.3262;1.3295;;.7522-;29;0;34071;52032;17142;1.5850B;1.2827A;" + // найти "-" в конце и перенести в следующее поле ;.7522-;29; = ;.7522;-29;
"6.6900;6.7068B;6.6834A;6.7025;;.1492;0.0190;0;28;135-;16;6.9102B;6.3689A;" +
"6.7765;6.7950B;6.7765;6.7840;;.1474;0.0310;0;17;184-;11;6.9888B;6.5982;";
var fields = linies.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
char[] totrim = { 'A', 'B'};
Regex regex = new Regex(@"\d{3}[B|A]{1}");
Regex regex1 = new Regex(@"\d{1,}[-]{1}");
foreach (var field in fields)
{
if (regex.IsMatch(field))
{
Console.WriteLine("есть совпадения "{0}" ", field);
//field.Replace('A', ' '); // не изменяет
field.Remove(field.Count() - 1); // не изменяет
//field.TrimEnd(totrim); // не изменяет
Console.WriteLine("изменили "{0}" ", field);
Console.ReadKey();
}
if (regex1.IsMatch(field))
{
Console.WriteLine("есть совпадения "{0}" ", field);
field.Remove(field.Count() - 1); // не изменяет
Console.WriteLine("изменили "{0}" ", field);
Console.ReadKey();
}
}
Console.ReadKey();
}
}
}Решение задачи: «В строке найти подстроку и обрезать последний символ»
textual
Листинг программы
using System;
class Program
{
public static void Main()
{
string lines = "1.3301;1.3337;1.3239;1.3273;;.7534-;29;2;107079;194564-;27443;1.6180B;1.2806;" + // нужно удалить в конце буквы "А" и "В" ;1.6180B; = ;1.6180;
"1.3321;1.3358;1.3262;1.3295;;.7522-;29;0;34071;52032;17142;1.5850B;1.2827A;" + // найти "-" в конце и перенести в следующее поле ;.7522-;29; = ;.7522;-29;
"6.6900;6.7068B;6.6834A;6.7025;;.1492;0.0190;0;28;135-;16;6.9102B;6.3689A;" +
"6.7765;6.7950B;6.7765;6.7840;;.1474;0.0310;0;17;184-;11;6.9888B;6.5982;";
string[] mass = lines.Split(';');
for (int n = 0; n < mass.Length; n++)
{
if (mass[n].EndsWith("A") || mass[n].EndsWith("B"))
{
mass[n] = mass[n].Remove(mass[n].Length - 1);
}
if (mass[n].EndsWith("-"))
{
mass[n] = mass[n].Remove(mass[n].Length - 1);
mass[n + 1] = "-" + mass[n + 1];
}
}
string new_lines = "";
foreach (string g in mass)
{
new_lines += g + ";";
}
new_lines = new_lines.Remove(new_lines.Length - 1);
Console.WriteLine(new_lines);
}
}