我想知道如何分割“ 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);
答案 0 :(得分:0)
我不知道您在做什么,但是想想如果要解析SVG数据,您还打算对它进行其他操作,例如显示SVG或对其进行修改。使用NuGet软件包可能比发明自己的实现更好,特别是如果发现从该字符串中选择数字具有挑战性的话。
除了“挑选数字”外,肯定还有其他的东西。而且我认为至少存在三种不同的SVG版本(所有版本可能会或可能不会使用相同的一种或多种坐标格式)。如果您想自己编写程序,则对此表示敬意。您应该首先查找SVG格式的文档,这样您才能确切了解这些坐标字符串的形成方式。