如何以正确的格式分割字符串

时间:2020-01-31 10:42:24

标签: c# .net string svg split

我想知道如何分割“ L-0,12,0,12”这样的字符串,这样我只能得到单独的数字。 -0,12和-0,12。这些是我需要从字符串中提取的两个不同的数字。有谁知道如何解决这一问题?我曾尝试过拆分字符串,但随后将所有拆分为','。

我想获得2个输出,分别为output1 = -0,12和output2 = 0.12。

字符串后面没有任何内容,只有第一个字母,然后是十进制的2个数字。它是SVG格式的坐标。完整的svg字符串为:“ M0,-0,12 L-0,12,-0,12 L-0,12,0,12 L0,12,0,12 L0,12,-0,12 L0,- 0,12“,但我已经用空格过滤了字符串,因此数组仅返回每个带字母的子字符串作为字符串的开头。

图片显示了如果我将空格作为分割字符分割它们,则字符串数组的输出是什么。

Output of string array 在C#中。

解决方案:是文化设置起作用的。在我的国家/地区,数字以逗号分隔,在英美文化模式中,数字以“。”分隔。小数点前。在代码开始运行之前,我更改了代码的区域性设置,现在我得到了想要获取的SVG字符串格式,因此可以用逗号将它们分开。

Fyi:

// Change current culture
            CultureInfo culture;
            if (Thread.CurrentThread.CurrentCulture.Name == "nl-NL")
                culture = CultureInfo.CreateSpecificCulture("en-US");
            else
                culture = CultureInfo.CreateSpecificCulture("nl-NL");

            Thread.CurrentThread.CurrentCulture = culture;
            Thread.CurrentThread.CurrentUICulture = culture;

此致

乔治

// using the method 
                    String[] strlist = regionString.Split(separator, count,
                           StringSplitOptions.RemoveEmptyEntries);

1 个答案:

答案 0 :(得分:0)

我不知道您在做什么,但是想想如果要解析SVG数据,您还打算对它进行其他操作,例如显示SVG或对其进行修改。使用NuGet软件包可能比发明自己的实现更好,特别是如果发现从该字符串中选择数字具有挑战性的话。

除了“挑选数字”外,肯定还有其他的东西。而且我认为至少存在三种不同的SVG版本(所有版本可能会或可能不会使用相同的一种或多种坐标格式)。如果您想自己编写程序,则对此表示敬意。您应该首先查找SVG格式的文档,这样您才能确切了解这些坐标字符串的形成方式。